{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# TensorFlow Regression Example"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Creating Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1 Million Points\n",
    "x_data = np.linspace(0.0,10.0,1000000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "noise = np.random.randn(len(x_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# y = mx + b + noise_levels\n",
    "b = 5\n",
    "\n",
    "y_true =  (0.5 * x_data ) + 5 + noise"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_data = pd.concat([pd.DataFrame(data=x_data,columns=['X Data']),pd.DataFrame(data=y_true,columns=['Y'])],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X Data</th>\n",
       "      <th>Y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.00000</td>\n",
       "      <td>5.873909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.00001</td>\n",
       "      <td>4.505520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.00002</td>\n",
       "      <td>5.232828</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.00003</td>\n",
       "      <td>4.962714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.00004</td>\n",
       "      <td>5.180927</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    X Data         Y\n",
       "0  0.00000  5.873909\n",
       "1  0.00001  4.505520\n",
       "2  0.00002  5.232828\n",
       "3  0.00003  4.962714\n",
       "4  0.00004  5.180927"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11e1d6f28>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "my_data.sample(n=250).plot(kind='scatter',x='X Data',y='Y')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TensorFlow\n",
    "## Batch Size\n",
    "\n",
    "We will take the data in batches (1,000,000 points is a lot to pass in at once)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Random 10 points to grab\n",
    "batch_size = 8"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Variables **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "w_tf = tf.Variable(np.random.uniform())\n",
    "b_tf = tf.Variable(np.random.uniform(1,10))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Placeholders **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = tf.placeholder(tf.float32,shape=(batch_size))\n",
    "y_train = tf.placeholder(tf.float32,shape=(batch_size))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Graph **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_hat = w_tf * x_train + b_tf"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Loss Function **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "error = tf.reduce_sum((y_train - y_hat)**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Optimizer **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "optimizer = tf.train.GradientDescentOptimizer(0.001)\n",
    "train = optimizer.minimize(error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "** Initialize Variables **"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "init = tf.global_variables_initializer()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Session"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "with tf.Session() as sess:\n",
    "    sess.run(init)\n",
    "    batchs = 1000\n",
    "    for i in range(batchs):\n",
    "        batch_index = np.random.randint(len(x_data),size=(batch_size))\n",
    "        feed = {x_train:x_data[batch_index], y_train:y_true[batch_index]}\n",
    "        sess.run(train,feed_dict = feed)\n",
    "    final_w, final_b = sess.run([w_tf,b_tf])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.46616304"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4.9834666"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_b"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0xb3dd39dd8>]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "my_data.sample(n=250).plot(kind='scatter',x='X Data',y='Y')\n",
    "plt.plot(x_data, final_w*x_data+final_b,'r')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## tf.keras API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.layers import Input, Dense\n",
    "from tensorflow.keras.models import Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## tf.estimator API\n",
    "\n",
    "Much simpler API for basic tasks like regression! We'll talk about more abstractions like TF-Slim later on."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "feat_cols = [tf.feature_column.numeric_column('x',shape=[1])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Using default config.\n",
      "WARNING:tensorflow:Using temporary folder as model directory: /var/folders/q_/7b87rxq97d74fk63y0b6xcy80000gn/T/tmprx24qzla\n",
      "INFO:tensorflow:Using config: {'_model_dir': '/var/folders/q_/7b87rxq97d74fk63y0b6xcy80000gn/T/tmprx24qzla', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x10babff60>, '_task_type': 'worker', '_task_id': 0, '_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}\n"
     ]
    }
   ],
   "source": [
    "estimator = tf.estimator.LinearRegressor(feature_columns=feat_cols)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train Test Split\n",
    "\n",
    "We haven't actually performed a train test split yet! So let's do that on our data now and perform a more realistic version of a Regression Task"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "x_train, x_eval, y_train, y_eval = train_test_split(x_data,y_true,test_size=0.3, random_state = 101)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(700000,)\n",
      "(700000,)\n",
      "(300000,)\n",
      "(300000,)\n"
     ]
    }
   ],
   "source": [
    "print(x_train.shape)\n",
    "print(y_train.shape)\n",
    "\n",
    "print(x_eval.shape)\n",
    "print(y_eval.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Set up Estimator Inputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Can also do .pandas_input_fn\n",
    "input_func = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=None,shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_input_func = tf.estimator.inputs.numpy_input_fn({'x':x_train},y_train,batch_size=4,num_epochs=1000,shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "eval_input_func = tf.estimator.inputs.numpy_input_fn({'x':x_eval},y_eval,batch_size=4,num_epochs=1000,shuffle=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train the Estimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Create CheckpointSaverHook.\n",
      "INFO:tensorflow:Saving checkpoints for 1 into C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt.\n",
      "INFO:tensorflow:loss = 221.003, step = 1\n",
      "INFO:tensorflow:global_step/sec: 910.556\n",
      "INFO:tensorflow:loss = 10.6791, step = 101 (0.111 sec)\n",
      "INFO:tensorflow:global_step/sec: 1007.43\n",
      "INFO:tensorflow:loss = 21.3457, step = 201 (0.099 sec)\n",
      "INFO:tensorflow:global_step/sec: 945.347\n",
      "INFO:tensorflow:loss = 11.026, step = 301 (0.106 sec)\n",
      "INFO:tensorflow:global_step/sec: 949.829\n",
      "INFO:tensorflow:loss = 10.8599, step = 401 (0.105 sec)\n",
      "INFO:tensorflow:global_step/sec: 1028.2\n",
      "INFO:tensorflow:loss = 13.3654, step = 501 (0.097 sec)\n",
      "INFO:tensorflow:global_step/sec: 1033.52\n",
      "INFO:tensorflow:loss = 2.5809, step = 601 (0.097 sec)\n",
      "INFO:tensorflow:global_step/sec: 1022.91\n",
      "INFO:tensorflow:loss = 4.30405, step = 701 (0.098 sec)\n",
      "INFO:tensorflow:global_step/sec: 1044.28\n",
      "INFO:tensorflow:loss = 4.66325, step = 801 (0.096 sec)\n",
      "INFO:tensorflow:global_step/sec: 992.324\n",
      "INFO:tensorflow:loss = 10.0263, step = 901 (0.101 sec)\n",
      "INFO:tensorflow:Saving checkpoints for 1000 into C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt.\n",
      "INFO:tensorflow:Loss for final step: 8.46343.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.estimator.canned.linear.LinearRegressor at 0x17e67bc4748>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimator.train(input_fn=input_func,steps=1000)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Starting evaluation at 2017-08-29-07:31:13\n",
      "INFO:tensorflow:Restoring parameters from C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt-1000\n",
      "INFO:tensorflow:Evaluation [1/1000]\n",
      "INFO:tensorflow:Evaluation [2/1000]\n",
      "INFO:tensorflow:Evaluation [3/1000]\n",
      "INFO:tensorflow:Evaluation [4/1000]\n",
      "INFO:tensorflow:Evaluation [5/1000]\n",
      "INFO:tensorflow:Evaluation [6/1000]\n",
      "INFO:tensorflow:Evaluation [7/1000]\n",
      "INFO:tensorflow:Evaluation [8/1000]\n",
      "INFO:tensorflow:Evaluation [9/1000]\n",
      "INFO:tensorflow:Evaluation [10/1000]\n",
      "INFO:tensorflow:Evaluation [11/1000]\n",
      "INFO:tensorflow:Evaluation [12/1000]\n",
      "INFO:tensorflow:Evaluation [13/1000]\n",
      "INFO:tensorflow:Evaluation [14/1000]\n",
      "INFO:tensorflow:Evaluation [15/1000]\n",
      "INFO:tensorflow:Evaluation [16/1000]\n",
      "INFO:tensorflow:Evaluation [17/1000]\n",
      "INFO:tensorflow:Evaluation [18/1000]\n",
      "INFO:tensorflow:Evaluation [19/1000]\n",
      "INFO:tensorflow:Evaluation [20/1000]\n",
      "INFO:tensorflow:Evaluation [21/1000]\n",
      "INFO:tensorflow:Evaluation [22/1000]\n",
      "INFO:tensorflow:Evaluation [23/1000]\n",
      "INFO:tensorflow:Evaluation [24/1000]\n",
      "INFO:tensorflow:Evaluation [25/1000]\n",
      "INFO:tensorflow:Evaluation [26/1000]\n",
      "INFO:tensorflow:Evaluation [27/1000]\n",
      "INFO:tensorflow:Evaluation [28/1000]\n",
      "INFO:tensorflow:Evaluation [29/1000]\n",
      "INFO:tensorflow:Evaluation [30/1000]\n",
      "INFO:tensorflow:Evaluation [31/1000]\n",
      "INFO:tensorflow:Evaluation [32/1000]\n",
      "INFO:tensorflow:Evaluation [33/1000]\n",
      "INFO:tensorflow:Evaluation [34/1000]\n",
      "INFO:tensorflow:Evaluation [35/1000]\n",
      "INFO:tensorflow:Evaluation [36/1000]\n",
      "INFO:tensorflow:Evaluation [37/1000]\n",
      "INFO:tensorflow:Evaluation [38/1000]\n",
      "INFO:tensorflow:Evaluation [39/1000]\n",
      "INFO:tensorflow:Evaluation [40/1000]\n",
      "INFO:tensorflow:Evaluation [41/1000]\n",
      "INFO:tensorflow:Evaluation [42/1000]\n",
      "INFO:tensorflow:Evaluation [43/1000]\n",
      "INFO:tensorflow:Evaluation [44/1000]\n",
      "INFO:tensorflow:Evaluation [45/1000]\n",
      "INFO:tensorflow:Evaluation [46/1000]\n",
      "INFO:tensorflow:Evaluation [47/1000]\n",
      "INFO:tensorflow:Evaluation [48/1000]\n",
      "INFO:tensorflow:Evaluation [49/1000]\n",
      "INFO:tensorflow:Evaluation [50/1000]\n",
      "INFO:tensorflow:Evaluation [51/1000]\n",
      "INFO:tensorflow:Evaluation [52/1000]\n",
      "INFO:tensorflow:Evaluation [53/1000]\n",
      "INFO:tensorflow:Evaluation [54/1000]\n",
      "INFO:tensorflow:Evaluation [55/1000]\n",
      "INFO:tensorflow:Evaluation [56/1000]\n",
      "INFO:tensorflow:Evaluation [57/1000]\n",
      "INFO:tensorflow:Evaluation [58/1000]\n",
      "INFO:tensorflow:Evaluation [59/1000]\n",
      "INFO:tensorflow:Evaluation [60/1000]\n",
      "INFO:tensorflow:Evaluation [61/1000]\n",
      "INFO:tensorflow:Evaluation [62/1000]\n",
      "INFO:tensorflow:Evaluation [63/1000]\n",
      "INFO:tensorflow:Evaluation [64/1000]\n",
      "INFO:tensorflow:Evaluation [65/1000]\n",
      "INFO:tensorflow:Evaluation [66/1000]\n",
      "INFO:tensorflow:Evaluation [67/1000]\n",
      "INFO:tensorflow:Evaluation [68/1000]\n",
      "INFO:tensorflow:Evaluation [69/1000]\n",
      "INFO:tensorflow:Evaluation [70/1000]\n",
      "INFO:tensorflow:Evaluation [71/1000]\n",
      "INFO:tensorflow:Evaluation [72/1000]\n",
      "INFO:tensorflow:Evaluation [73/1000]\n",
      "INFO:tensorflow:Evaluation [74/1000]\n",
      "INFO:tensorflow:Evaluation [75/1000]\n",
      "INFO:tensorflow:Evaluation [76/1000]\n",
      "INFO:tensorflow:Evaluation [77/1000]\n",
      "INFO:tensorflow:Evaluation [78/1000]\n",
      "INFO:tensorflow:Evaluation [79/1000]\n",
      "INFO:tensorflow:Evaluation [80/1000]\n",
      "INFO:tensorflow:Evaluation [81/1000]\n",
      "INFO:tensorflow:Evaluation [82/1000]\n",
      "INFO:tensorflow:Evaluation [83/1000]\n",
      "INFO:tensorflow:Evaluation [84/1000]\n",
      "INFO:tensorflow:Evaluation [85/1000]\n",
      "INFO:tensorflow:Evaluation [86/1000]\n",
      "INFO:tensorflow:Evaluation [87/1000]\n",
      "INFO:tensorflow:Evaluation [88/1000]\n",
      "INFO:tensorflow:Evaluation [89/1000]\n",
      "INFO:tensorflow:Evaluation [90/1000]\n",
      "INFO:tensorflow:Evaluation [91/1000]\n",
      "INFO:tensorflow:Evaluation [92/1000]\n",
      "INFO:tensorflow:Evaluation [93/1000]\n",
      "INFO:tensorflow:Evaluation [94/1000]\n",
      "INFO:tensorflow:Evaluation [95/1000]\n",
      "INFO:tensorflow:Evaluation [96/1000]\n",
      "INFO:tensorflow:Evaluation [97/1000]\n",
      "INFO:tensorflow:Evaluation [98/1000]\n",
      "INFO:tensorflow:Evaluation [99/1000]\n",
      "INFO:tensorflow:Evaluation [100/1000]\n",
      "INFO:tensorflow:Evaluation [101/1000]\n",
      "INFO:tensorflow:Evaluation [102/1000]\n",
      "INFO:tensorflow:Evaluation [103/1000]\n",
      "INFO:tensorflow:Evaluation [104/1000]\n",
      "INFO:tensorflow:Evaluation [105/1000]\n",
      "INFO:tensorflow:Evaluation [106/1000]\n",
      "INFO:tensorflow:Evaluation [107/1000]\n",
      "INFO:tensorflow:Evaluation [108/1000]\n",
      "INFO:tensorflow:Evaluation [109/1000]\n",
      "INFO:tensorflow:Evaluation [110/1000]\n",
      "INFO:tensorflow:Evaluation [111/1000]\n",
      "INFO:tensorflow:Evaluation [112/1000]\n",
      "INFO:tensorflow:Evaluation [113/1000]\n",
      "INFO:tensorflow:Evaluation [114/1000]\n",
      "INFO:tensorflow:Evaluation [115/1000]\n",
      "INFO:tensorflow:Evaluation [116/1000]\n",
      "INFO:tensorflow:Evaluation [117/1000]\n",
      "INFO:tensorflow:Evaluation [118/1000]\n",
      "INFO:tensorflow:Evaluation [119/1000]\n",
      "INFO:tensorflow:Evaluation [120/1000]\n",
      "INFO:tensorflow:Evaluation [121/1000]\n",
      "INFO:tensorflow:Evaluation [122/1000]\n",
      "INFO:tensorflow:Evaluation [123/1000]\n",
      "INFO:tensorflow:Evaluation [124/1000]\n",
      "INFO:tensorflow:Evaluation [125/1000]\n",
      "INFO:tensorflow:Evaluation [126/1000]\n",
      "INFO:tensorflow:Evaluation [127/1000]\n",
      "INFO:tensorflow:Evaluation [128/1000]\n",
      "INFO:tensorflow:Evaluation [129/1000]\n",
      "INFO:tensorflow:Evaluation [130/1000]\n",
      "INFO:tensorflow:Evaluation [131/1000]\n",
      "INFO:tensorflow:Evaluation [132/1000]\n",
      "INFO:tensorflow:Evaluation [133/1000]\n",
      "INFO:tensorflow:Evaluation [134/1000]\n",
      "INFO:tensorflow:Evaluation [135/1000]\n",
      "INFO:tensorflow:Evaluation [136/1000]\n",
      "INFO:tensorflow:Evaluation [137/1000]\n",
      "INFO:tensorflow:Evaluation [138/1000]\n",
      "INFO:tensorflow:Evaluation [139/1000]\n",
      "INFO:tensorflow:Evaluation [140/1000]\n",
      "INFO:tensorflow:Evaluation [141/1000]\n",
      "INFO:tensorflow:Evaluation [142/1000]\n",
      "INFO:tensorflow:Evaluation [143/1000]\n",
      "INFO:tensorflow:Evaluation [144/1000]\n",
      "INFO:tensorflow:Evaluation [145/1000]\n",
      "INFO:tensorflow:Evaluation [146/1000]\n",
      "INFO:tensorflow:Evaluation [147/1000]\n",
      "INFO:tensorflow:Evaluation [148/1000]\n",
      "INFO:tensorflow:Evaluation [149/1000]\n",
      "INFO:tensorflow:Evaluation [150/1000]\n",
      "INFO:tensorflow:Evaluation [151/1000]\n",
      "INFO:tensorflow:Evaluation [152/1000]\n",
      "INFO:tensorflow:Evaluation [153/1000]\n",
      "INFO:tensorflow:Evaluation [154/1000]\n",
      "INFO:tensorflow:Evaluation [155/1000]\n",
      "INFO:tensorflow:Evaluation [156/1000]\n",
      "INFO:tensorflow:Evaluation [157/1000]\n",
      "INFO:tensorflow:Evaluation [158/1000]\n",
      "INFO:tensorflow:Evaluation [159/1000]\n",
      "INFO:tensorflow:Evaluation [160/1000]\n",
      "INFO:tensorflow:Evaluation [161/1000]\n",
      "INFO:tensorflow:Evaluation [162/1000]\n",
      "INFO:tensorflow:Evaluation [163/1000]\n",
      "INFO:tensorflow:Evaluation [164/1000]\n",
      "INFO:tensorflow:Evaluation [165/1000]\n",
      "INFO:tensorflow:Evaluation [166/1000]\n",
      "INFO:tensorflow:Evaluation [167/1000]\n",
      "INFO:tensorflow:Evaluation [168/1000]\n",
      "INFO:tensorflow:Evaluation [169/1000]\n",
      "INFO:tensorflow:Evaluation [170/1000]\n",
      "INFO:tensorflow:Evaluation [171/1000]\n",
      "INFO:tensorflow:Evaluation [172/1000]\n",
      "INFO:tensorflow:Evaluation [173/1000]\n",
      "INFO:tensorflow:Evaluation [174/1000]\n",
      "INFO:tensorflow:Evaluation [175/1000]\n",
      "INFO:tensorflow:Evaluation [176/1000]\n",
      "INFO:tensorflow:Evaluation [177/1000]\n",
      "INFO:tensorflow:Evaluation [178/1000]\n",
      "INFO:tensorflow:Evaluation [179/1000]\n",
      "INFO:tensorflow:Evaluation [180/1000]\n",
      "INFO:tensorflow:Evaluation [181/1000]\n",
      "INFO:tensorflow:Evaluation [182/1000]\n",
      "INFO:tensorflow:Evaluation [183/1000]\n",
      "INFO:tensorflow:Evaluation [184/1000]\n",
      "INFO:tensorflow:Evaluation [185/1000]\n",
      "INFO:tensorflow:Evaluation [186/1000]\n",
      "INFO:tensorflow:Evaluation [187/1000]\n",
      "INFO:tensorflow:Evaluation [188/1000]\n",
      "INFO:tensorflow:Evaluation [189/1000]\n",
      "INFO:tensorflow:Evaluation [190/1000]\n",
      "INFO:tensorflow:Evaluation [191/1000]\n",
      "INFO:tensorflow:Evaluation [192/1000]\n",
      "INFO:tensorflow:Evaluation [193/1000]\n",
      "INFO:tensorflow:Evaluation [194/1000]\n",
      "INFO:tensorflow:Evaluation [195/1000]\n",
      "INFO:tensorflow:Evaluation [196/1000]\n",
      "INFO:tensorflow:Evaluation [197/1000]\n",
      "INFO:tensorflow:Evaluation [198/1000]\n",
      "INFO:tensorflow:Evaluation [199/1000]\n",
      "INFO:tensorflow:Evaluation [200/1000]\n",
      "INFO:tensorflow:Evaluation [201/1000]\n",
      "INFO:tensorflow:Evaluation [202/1000]\n",
      "INFO:tensorflow:Evaluation [203/1000]\n",
      "INFO:tensorflow:Evaluation [204/1000]\n",
      "INFO:tensorflow:Evaluation [205/1000]\n",
      "INFO:tensorflow:Evaluation [206/1000]\n",
      "INFO:tensorflow:Evaluation [207/1000]\n",
      "INFO:tensorflow:Evaluation [208/1000]\n",
      "INFO:tensorflow:Evaluation [209/1000]\n",
      "INFO:tensorflow:Evaluation [210/1000]\n",
      "INFO:tensorflow:Evaluation [211/1000]\n",
      "INFO:tensorflow:Evaluation [212/1000]\n",
      "INFO:tensorflow:Evaluation [213/1000]\n",
      "INFO:tensorflow:Evaluation [214/1000]\n",
      "INFO:tensorflow:Evaluation [215/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [216/1000]\n",
      "INFO:tensorflow:Evaluation [217/1000]\n",
      "INFO:tensorflow:Evaluation [218/1000]\n",
      "INFO:tensorflow:Evaluation [219/1000]\n",
      "INFO:tensorflow:Evaluation [220/1000]\n",
      "INFO:tensorflow:Evaluation [221/1000]\n",
      "INFO:tensorflow:Evaluation [222/1000]\n",
      "INFO:tensorflow:Evaluation [223/1000]\n",
      "INFO:tensorflow:Evaluation [224/1000]\n",
      "INFO:tensorflow:Evaluation [225/1000]\n",
      "INFO:tensorflow:Evaluation [226/1000]\n",
      "INFO:tensorflow:Evaluation [227/1000]\n",
      "INFO:tensorflow:Evaluation [228/1000]\n",
      "INFO:tensorflow:Evaluation [229/1000]\n",
      "INFO:tensorflow:Evaluation [230/1000]\n",
      "INFO:tensorflow:Evaluation [231/1000]\n",
      "INFO:tensorflow:Evaluation [232/1000]\n",
      "INFO:tensorflow:Evaluation [233/1000]\n",
      "INFO:tensorflow:Evaluation [234/1000]\n",
      "INFO:tensorflow:Evaluation [235/1000]\n",
      "INFO:tensorflow:Evaluation [236/1000]\n",
      "INFO:tensorflow:Evaluation [237/1000]\n",
      "INFO:tensorflow:Evaluation [238/1000]\n",
      "INFO:tensorflow:Evaluation [239/1000]\n",
      "INFO:tensorflow:Evaluation [240/1000]\n",
      "INFO:tensorflow:Evaluation [241/1000]\n",
      "INFO:tensorflow:Evaluation [242/1000]\n",
      "INFO:tensorflow:Evaluation [243/1000]\n",
      "INFO:tensorflow:Evaluation [244/1000]\n",
      "INFO:tensorflow:Evaluation [245/1000]\n",
      "INFO:tensorflow:Evaluation [246/1000]\n",
      "INFO:tensorflow:Evaluation [247/1000]\n",
      "INFO:tensorflow:Evaluation [248/1000]\n",
      "INFO:tensorflow:Evaluation [249/1000]\n",
      "INFO:tensorflow:Evaluation [250/1000]\n",
      "INFO:tensorflow:Evaluation [251/1000]\n",
      "INFO:tensorflow:Evaluation [252/1000]\n",
      "INFO:tensorflow:Evaluation [253/1000]\n",
      "INFO:tensorflow:Evaluation [254/1000]\n",
      "INFO:tensorflow:Evaluation [255/1000]\n",
      "INFO:tensorflow:Evaluation [256/1000]\n",
      "INFO:tensorflow:Evaluation [257/1000]\n",
      "INFO:tensorflow:Evaluation [258/1000]\n",
      "INFO:tensorflow:Evaluation [259/1000]\n",
      "INFO:tensorflow:Evaluation [260/1000]\n",
      "INFO:tensorflow:Evaluation [261/1000]\n",
      "INFO:tensorflow:Evaluation [262/1000]\n",
      "INFO:tensorflow:Evaluation [263/1000]\n",
      "INFO:tensorflow:Evaluation [264/1000]\n",
      "INFO:tensorflow:Evaluation [265/1000]\n",
      "INFO:tensorflow:Evaluation [266/1000]\n",
      "INFO:tensorflow:Evaluation [267/1000]\n",
      "INFO:tensorflow:Evaluation [268/1000]\n",
      "INFO:tensorflow:Evaluation [269/1000]\n",
      "INFO:tensorflow:Evaluation [270/1000]\n",
      "INFO:tensorflow:Evaluation [271/1000]\n",
      "INFO:tensorflow:Evaluation [272/1000]\n",
      "INFO:tensorflow:Evaluation [273/1000]\n",
      "INFO:tensorflow:Evaluation [274/1000]\n",
      "INFO:tensorflow:Evaluation [275/1000]\n",
      "INFO:tensorflow:Evaluation [276/1000]\n",
      "INFO:tensorflow:Evaluation [277/1000]\n",
      "INFO:tensorflow:Evaluation [278/1000]\n",
      "INFO:tensorflow:Evaluation [279/1000]\n",
      "INFO:tensorflow:Evaluation [280/1000]\n",
      "INFO:tensorflow:Evaluation [281/1000]\n",
      "INFO:tensorflow:Evaluation [282/1000]\n",
      "INFO:tensorflow:Evaluation [283/1000]\n",
      "INFO:tensorflow:Evaluation [284/1000]\n",
      "INFO:tensorflow:Evaluation [285/1000]\n",
      "INFO:tensorflow:Evaluation [286/1000]\n",
      "INFO:tensorflow:Evaluation [287/1000]\n",
      "INFO:tensorflow:Evaluation [288/1000]\n",
      "INFO:tensorflow:Evaluation [289/1000]\n",
      "INFO:tensorflow:Evaluation [290/1000]\n",
      "INFO:tensorflow:Evaluation [291/1000]\n",
      "INFO:tensorflow:Evaluation [292/1000]\n",
      "INFO:tensorflow:Evaluation [293/1000]\n",
      "INFO:tensorflow:Evaluation [294/1000]\n",
      "INFO:tensorflow:Evaluation [295/1000]\n",
      "INFO:tensorflow:Evaluation [296/1000]\n",
      "INFO:tensorflow:Evaluation [297/1000]\n",
      "INFO:tensorflow:Evaluation [298/1000]\n",
      "INFO:tensorflow:Evaluation [299/1000]\n",
      "INFO:tensorflow:Evaluation [300/1000]\n",
      "INFO:tensorflow:Evaluation [301/1000]\n",
      "INFO:tensorflow:Evaluation [302/1000]\n",
      "INFO:tensorflow:Evaluation [303/1000]\n",
      "INFO:tensorflow:Evaluation [304/1000]\n",
      "INFO:tensorflow:Evaluation [305/1000]\n",
      "INFO:tensorflow:Evaluation [306/1000]\n",
      "INFO:tensorflow:Evaluation [307/1000]\n",
      "INFO:tensorflow:Evaluation [308/1000]\n",
      "INFO:tensorflow:Evaluation [309/1000]\n",
      "INFO:tensorflow:Evaluation [310/1000]\n",
      "INFO:tensorflow:Evaluation [311/1000]\n",
      "INFO:tensorflow:Evaluation [312/1000]\n",
      "INFO:tensorflow:Evaluation [313/1000]\n",
      "INFO:tensorflow:Evaluation [314/1000]\n",
      "INFO:tensorflow:Evaluation [315/1000]\n",
      "INFO:tensorflow:Evaluation [316/1000]\n",
      "INFO:tensorflow:Evaluation [317/1000]\n",
      "INFO:tensorflow:Evaluation [318/1000]\n",
      "INFO:tensorflow:Evaluation [319/1000]\n",
      "INFO:tensorflow:Evaluation [320/1000]\n",
      "INFO:tensorflow:Evaluation [321/1000]\n",
      "INFO:tensorflow:Evaluation [322/1000]\n",
      "INFO:tensorflow:Evaluation [323/1000]\n",
      "INFO:tensorflow:Evaluation [324/1000]\n",
      "INFO:tensorflow:Evaluation [325/1000]\n",
      "INFO:tensorflow:Evaluation [326/1000]\n",
      "INFO:tensorflow:Evaluation [327/1000]\n",
      "INFO:tensorflow:Evaluation [328/1000]\n",
      "INFO:tensorflow:Evaluation [329/1000]\n",
      "INFO:tensorflow:Evaluation [330/1000]\n",
      "INFO:tensorflow:Evaluation [331/1000]\n",
      "INFO:tensorflow:Evaluation [332/1000]\n",
      "INFO:tensorflow:Evaluation [333/1000]\n",
      "INFO:tensorflow:Evaluation [334/1000]\n",
      "INFO:tensorflow:Evaluation [335/1000]\n",
      "INFO:tensorflow:Evaluation [336/1000]\n",
      "INFO:tensorflow:Evaluation [337/1000]\n",
      "INFO:tensorflow:Evaluation [338/1000]\n",
      "INFO:tensorflow:Evaluation [339/1000]\n",
      "INFO:tensorflow:Evaluation [340/1000]\n",
      "INFO:tensorflow:Evaluation [341/1000]\n",
      "INFO:tensorflow:Evaluation [342/1000]\n",
      "INFO:tensorflow:Evaluation [343/1000]\n",
      "INFO:tensorflow:Evaluation [344/1000]\n",
      "INFO:tensorflow:Evaluation [345/1000]\n",
      "INFO:tensorflow:Evaluation [346/1000]\n",
      "INFO:tensorflow:Evaluation [347/1000]\n",
      "INFO:tensorflow:Evaluation [348/1000]\n",
      "INFO:tensorflow:Evaluation [349/1000]\n",
      "INFO:tensorflow:Evaluation [350/1000]\n",
      "INFO:tensorflow:Evaluation [351/1000]\n",
      "INFO:tensorflow:Evaluation [352/1000]\n",
      "INFO:tensorflow:Evaluation [353/1000]\n",
      "INFO:tensorflow:Evaluation [354/1000]\n",
      "INFO:tensorflow:Evaluation [355/1000]\n",
      "INFO:tensorflow:Evaluation [356/1000]\n",
      "INFO:tensorflow:Evaluation [357/1000]\n",
      "INFO:tensorflow:Evaluation [358/1000]\n",
      "INFO:tensorflow:Evaluation [359/1000]\n",
      "INFO:tensorflow:Evaluation [360/1000]\n",
      "INFO:tensorflow:Evaluation [361/1000]\n",
      "INFO:tensorflow:Evaluation [362/1000]\n",
      "INFO:tensorflow:Evaluation [363/1000]\n",
      "INFO:tensorflow:Evaluation [364/1000]\n",
      "INFO:tensorflow:Evaluation [365/1000]\n",
      "INFO:tensorflow:Evaluation [366/1000]\n",
      "INFO:tensorflow:Evaluation [367/1000]\n",
      "INFO:tensorflow:Evaluation [368/1000]\n",
      "INFO:tensorflow:Evaluation [369/1000]\n",
      "INFO:tensorflow:Evaluation [370/1000]\n",
      "INFO:tensorflow:Evaluation [371/1000]\n",
      "INFO:tensorflow:Evaluation [372/1000]\n",
      "INFO:tensorflow:Evaluation [373/1000]\n",
      "INFO:tensorflow:Evaluation [374/1000]\n",
      "INFO:tensorflow:Evaluation [375/1000]\n",
      "INFO:tensorflow:Evaluation [376/1000]\n",
      "INFO:tensorflow:Evaluation [377/1000]\n",
      "INFO:tensorflow:Evaluation [378/1000]\n",
      "INFO:tensorflow:Evaluation [379/1000]\n",
      "INFO:tensorflow:Evaluation [380/1000]\n",
      "INFO:tensorflow:Evaluation [381/1000]\n",
      "INFO:tensorflow:Evaluation [382/1000]\n",
      "INFO:tensorflow:Evaluation [383/1000]\n",
      "INFO:tensorflow:Evaluation [384/1000]\n",
      "INFO:tensorflow:Evaluation [385/1000]\n",
      "INFO:tensorflow:Evaluation [386/1000]\n",
      "INFO:tensorflow:Evaluation [387/1000]\n",
      "INFO:tensorflow:Evaluation [388/1000]\n",
      "INFO:tensorflow:Evaluation [389/1000]\n",
      "INFO:tensorflow:Evaluation [390/1000]\n",
      "INFO:tensorflow:Evaluation [391/1000]\n",
      "INFO:tensorflow:Evaluation [392/1000]\n",
      "INFO:tensorflow:Evaluation [393/1000]\n",
      "INFO:tensorflow:Evaluation [394/1000]\n",
      "INFO:tensorflow:Evaluation [395/1000]\n",
      "INFO:tensorflow:Evaluation [396/1000]\n",
      "INFO:tensorflow:Evaluation [397/1000]\n",
      "INFO:tensorflow:Evaluation [398/1000]\n",
      "INFO:tensorflow:Evaluation [399/1000]\n",
      "INFO:tensorflow:Evaluation [400/1000]\n",
      "INFO:tensorflow:Evaluation [401/1000]\n",
      "INFO:tensorflow:Evaluation [402/1000]\n",
      "INFO:tensorflow:Evaluation [403/1000]\n",
      "INFO:tensorflow:Evaluation [404/1000]\n",
      "INFO:tensorflow:Evaluation [405/1000]\n",
      "INFO:tensorflow:Evaluation [406/1000]\n",
      "INFO:tensorflow:Evaluation [407/1000]\n",
      "INFO:tensorflow:Evaluation [408/1000]\n",
      "INFO:tensorflow:Evaluation [409/1000]\n",
      "INFO:tensorflow:Evaluation [410/1000]\n",
      "INFO:tensorflow:Evaluation [411/1000]\n",
      "INFO:tensorflow:Evaluation [412/1000]\n",
      "INFO:tensorflow:Evaluation [413/1000]\n",
      "INFO:tensorflow:Evaluation [414/1000]\n",
      "INFO:tensorflow:Evaluation [415/1000]\n",
      "INFO:tensorflow:Evaluation [416/1000]\n",
      "INFO:tensorflow:Evaluation [417/1000]\n",
      "INFO:tensorflow:Evaluation [418/1000]\n",
      "INFO:tensorflow:Evaluation [419/1000]\n",
      "INFO:tensorflow:Evaluation [420/1000]\n",
      "INFO:tensorflow:Evaluation [421/1000]\n",
      "INFO:tensorflow:Evaluation [422/1000]\n",
      "INFO:tensorflow:Evaluation [423/1000]\n",
      "INFO:tensorflow:Evaluation [424/1000]\n",
      "INFO:tensorflow:Evaluation [425/1000]\n",
      "INFO:tensorflow:Evaluation [426/1000]\n",
      "INFO:tensorflow:Evaluation [427/1000]\n",
      "INFO:tensorflow:Evaluation [428/1000]\n",
      "INFO:tensorflow:Evaluation [429/1000]\n",
      "INFO:tensorflow:Evaluation [430/1000]\n",
      "INFO:tensorflow:Evaluation [431/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [432/1000]\n",
      "INFO:tensorflow:Evaluation [433/1000]\n",
      "INFO:tensorflow:Evaluation [434/1000]\n",
      "INFO:tensorflow:Evaluation [435/1000]\n",
      "INFO:tensorflow:Evaluation [436/1000]\n",
      "INFO:tensorflow:Evaluation [437/1000]\n",
      "INFO:tensorflow:Evaluation [438/1000]\n",
      "INFO:tensorflow:Evaluation [439/1000]\n",
      "INFO:tensorflow:Evaluation [440/1000]\n",
      "INFO:tensorflow:Evaluation [441/1000]\n",
      "INFO:tensorflow:Evaluation [442/1000]\n",
      "INFO:tensorflow:Evaluation [443/1000]\n",
      "INFO:tensorflow:Evaluation [444/1000]\n",
      "INFO:tensorflow:Evaluation [445/1000]\n",
      "INFO:tensorflow:Evaluation [446/1000]\n",
      "INFO:tensorflow:Evaluation [447/1000]\n",
      "INFO:tensorflow:Evaluation [448/1000]\n",
      "INFO:tensorflow:Evaluation [449/1000]\n",
      "INFO:tensorflow:Evaluation [450/1000]\n",
      "INFO:tensorflow:Evaluation [451/1000]\n",
      "INFO:tensorflow:Evaluation [452/1000]\n",
      "INFO:tensorflow:Evaluation [453/1000]\n",
      "INFO:tensorflow:Evaluation [454/1000]\n",
      "INFO:tensorflow:Evaluation [455/1000]\n",
      "INFO:tensorflow:Evaluation [456/1000]\n",
      "INFO:tensorflow:Evaluation [457/1000]\n",
      "INFO:tensorflow:Evaluation [458/1000]\n",
      "INFO:tensorflow:Evaluation [459/1000]\n",
      "INFO:tensorflow:Evaluation [460/1000]\n",
      "INFO:tensorflow:Evaluation [461/1000]\n",
      "INFO:tensorflow:Evaluation [462/1000]\n",
      "INFO:tensorflow:Evaluation [463/1000]\n",
      "INFO:tensorflow:Evaluation [464/1000]\n",
      "INFO:tensorflow:Evaluation [465/1000]\n",
      "INFO:tensorflow:Evaluation [466/1000]\n",
      "INFO:tensorflow:Evaluation [467/1000]\n",
      "INFO:tensorflow:Evaluation [468/1000]\n",
      "INFO:tensorflow:Evaluation [469/1000]\n",
      "INFO:tensorflow:Evaluation [470/1000]\n",
      "INFO:tensorflow:Evaluation [471/1000]\n",
      "INFO:tensorflow:Evaluation [472/1000]\n",
      "INFO:tensorflow:Evaluation [473/1000]\n",
      "INFO:tensorflow:Evaluation [474/1000]\n",
      "INFO:tensorflow:Evaluation [475/1000]\n",
      "INFO:tensorflow:Evaluation [476/1000]\n",
      "INFO:tensorflow:Evaluation [477/1000]\n",
      "INFO:tensorflow:Evaluation [478/1000]\n",
      "INFO:tensorflow:Evaluation [479/1000]\n",
      "INFO:tensorflow:Evaluation [480/1000]\n",
      "INFO:tensorflow:Evaluation [481/1000]\n",
      "INFO:tensorflow:Evaluation [482/1000]\n",
      "INFO:tensorflow:Evaluation [483/1000]\n",
      "INFO:tensorflow:Evaluation [484/1000]\n",
      "INFO:tensorflow:Evaluation [485/1000]\n",
      "INFO:tensorflow:Evaluation [486/1000]\n",
      "INFO:tensorflow:Evaluation [487/1000]\n",
      "INFO:tensorflow:Evaluation [488/1000]\n",
      "INFO:tensorflow:Evaluation [489/1000]\n",
      "INFO:tensorflow:Evaluation [490/1000]\n",
      "INFO:tensorflow:Evaluation [491/1000]\n",
      "INFO:tensorflow:Evaluation [492/1000]\n",
      "INFO:tensorflow:Evaluation [493/1000]\n",
      "INFO:tensorflow:Evaluation [494/1000]\n",
      "INFO:tensorflow:Evaluation [495/1000]\n",
      "INFO:tensorflow:Evaluation [496/1000]\n",
      "INFO:tensorflow:Evaluation [497/1000]\n",
      "INFO:tensorflow:Evaluation [498/1000]\n",
      "INFO:tensorflow:Evaluation [499/1000]\n",
      "INFO:tensorflow:Evaluation [500/1000]\n",
      "INFO:tensorflow:Evaluation [501/1000]\n",
      "INFO:tensorflow:Evaluation [502/1000]\n",
      "INFO:tensorflow:Evaluation [503/1000]\n",
      "INFO:tensorflow:Evaluation [504/1000]\n",
      "INFO:tensorflow:Evaluation [505/1000]\n",
      "INFO:tensorflow:Evaluation [506/1000]\n",
      "INFO:tensorflow:Evaluation [507/1000]\n",
      "INFO:tensorflow:Evaluation [508/1000]\n",
      "INFO:tensorflow:Evaluation [509/1000]\n",
      "INFO:tensorflow:Evaluation [510/1000]\n",
      "INFO:tensorflow:Evaluation [511/1000]\n",
      "INFO:tensorflow:Evaluation [512/1000]\n",
      "INFO:tensorflow:Evaluation [513/1000]\n",
      "INFO:tensorflow:Evaluation [514/1000]\n",
      "INFO:tensorflow:Evaluation [515/1000]\n",
      "INFO:tensorflow:Evaluation [516/1000]\n",
      "INFO:tensorflow:Evaluation [517/1000]\n",
      "INFO:tensorflow:Evaluation [518/1000]\n",
      "INFO:tensorflow:Evaluation [519/1000]\n",
      "INFO:tensorflow:Evaluation [520/1000]\n",
      "INFO:tensorflow:Evaluation [521/1000]\n",
      "INFO:tensorflow:Evaluation [522/1000]\n",
      "INFO:tensorflow:Evaluation [523/1000]\n",
      "INFO:tensorflow:Evaluation [524/1000]\n",
      "INFO:tensorflow:Evaluation [525/1000]\n",
      "INFO:tensorflow:Evaluation [526/1000]\n",
      "INFO:tensorflow:Evaluation [527/1000]\n",
      "INFO:tensorflow:Evaluation [528/1000]\n",
      "INFO:tensorflow:Evaluation [529/1000]\n",
      "INFO:tensorflow:Evaluation [530/1000]\n",
      "INFO:tensorflow:Evaluation [531/1000]\n",
      "INFO:tensorflow:Evaluation [532/1000]\n",
      "INFO:tensorflow:Evaluation [533/1000]\n",
      "INFO:tensorflow:Evaluation [534/1000]\n",
      "INFO:tensorflow:Evaluation [535/1000]\n",
      "INFO:tensorflow:Evaluation [536/1000]\n",
      "INFO:tensorflow:Evaluation [537/1000]\n",
      "INFO:tensorflow:Evaluation [538/1000]\n",
      "INFO:tensorflow:Evaluation [539/1000]\n",
      "INFO:tensorflow:Evaluation [540/1000]\n",
      "INFO:tensorflow:Evaluation [541/1000]\n",
      "INFO:tensorflow:Evaluation [542/1000]\n",
      "INFO:tensorflow:Evaluation [543/1000]\n",
      "INFO:tensorflow:Evaluation [544/1000]\n",
      "INFO:tensorflow:Evaluation [545/1000]\n",
      "INFO:tensorflow:Evaluation [546/1000]\n",
      "INFO:tensorflow:Evaluation [547/1000]\n",
      "INFO:tensorflow:Evaluation [548/1000]\n",
      "INFO:tensorflow:Evaluation [549/1000]\n",
      "INFO:tensorflow:Evaluation [550/1000]\n",
      "INFO:tensorflow:Evaluation [551/1000]\n",
      "INFO:tensorflow:Evaluation [552/1000]\n",
      "INFO:tensorflow:Evaluation [553/1000]\n",
      "INFO:tensorflow:Evaluation [554/1000]\n",
      "INFO:tensorflow:Evaluation [555/1000]\n",
      "INFO:tensorflow:Evaluation [556/1000]\n",
      "INFO:tensorflow:Evaluation [557/1000]\n",
      "INFO:tensorflow:Evaluation [558/1000]\n",
      "INFO:tensorflow:Evaluation [559/1000]\n",
      "INFO:tensorflow:Evaluation [560/1000]\n",
      "INFO:tensorflow:Evaluation [561/1000]\n",
      "INFO:tensorflow:Evaluation [562/1000]\n",
      "INFO:tensorflow:Evaluation [563/1000]\n",
      "INFO:tensorflow:Evaluation [564/1000]\n",
      "INFO:tensorflow:Evaluation [565/1000]\n",
      "INFO:tensorflow:Evaluation [566/1000]\n",
      "INFO:tensorflow:Evaluation [567/1000]\n",
      "INFO:tensorflow:Evaluation [568/1000]\n",
      "INFO:tensorflow:Evaluation [569/1000]\n",
      "INFO:tensorflow:Evaluation [570/1000]\n",
      "INFO:tensorflow:Evaluation [571/1000]\n",
      "INFO:tensorflow:Evaluation [572/1000]\n",
      "INFO:tensorflow:Evaluation [573/1000]\n",
      "INFO:tensorflow:Evaluation [574/1000]\n",
      "INFO:tensorflow:Evaluation [575/1000]\n",
      "INFO:tensorflow:Evaluation [576/1000]\n",
      "INFO:tensorflow:Evaluation [577/1000]\n",
      "INFO:tensorflow:Evaluation [578/1000]\n",
      "INFO:tensorflow:Evaluation [579/1000]\n",
      "INFO:tensorflow:Evaluation [580/1000]\n",
      "INFO:tensorflow:Evaluation [581/1000]\n",
      "INFO:tensorflow:Evaluation [582/1000]\n",
      "INFO:tensorflow:Evaluation [583/1000]\n",
      "INFO:tensorflow:Evaluation [584/1000]\n",
      "INFO:tensorflow:Evaluation [585/1000]\n",
      "INFO:tensorflow:Evaluation [586/1000]\n",
      "INFO:tensorflow:Evaluation [587/1000]\n",
      "INFO:tensorflow:Evaluation [588/1000]\n",
      "INFO:tensorflow:Evaluation [589/1000]\n",
      "INFO:tensorflow:Evaluation [590/1000]\n",
      "INFO:tensorflow:Evaluation [591/1000]\n",
      "INFO:tensorflow:Evaluation [592/1000]\n",
      "INFO:tensorflow:Evaluation [593/1000]\n",
      "INFO:tensorflow:Evaluation [594/1000]\n",
      "INFO:tensorflow:Evaluation [595/1000]\n",
      "INFO:tensorflow:Evaluation [596/1000]\n",
      "INFO:tensorflow:Evaluation [597/1000]\n",
      "INFO:tensorflow:Evaluation [598/1000]\n",
      "INFO:tensorflow:Evaluation [599/1000]\n",
      "INFO:tensorflow:Evaluation [600/1000]\n",
      "INFO:tensorflow:Evaluation [601/1000]\n",
      "INFO:tensorflow:Evaluation [602/1000]\n",
      "INFO:tensorflow:Evaluation [603/1000]\n",
      "INFO:tensorflow:Evaluation [604/1000]\n",
      "INFO:tensorflow:Evaluation [605/1000]\n",
      "INFO:tensorflow:Evaluation [606/1000]\n",
      "INFO:tensorflow:Evaluation [607/1000]\n",
      "INFO:tensorflow:Evaluation [608/1000]\n",
      "INFO:tensorflow:Evaluation [609/1000]\n",
      "INFO:tensorflow:Evaluation [610/1000]\n",
      "INFO:tensorflow:Evaluation [611/1000]\n",
      "INFO:tensorflow:Evaluation [612/1000]\n",
      "INFO:tensorflow:Evaluation [613/1000]\n",
      "INFO:tensorflow:Evaluation [614/1000]\n",
      "INFO:tensorflow:Evaluation [615/1000]\n",
      "INFO:tensorflow:Evaluation [616/1000]\n",
      "INFO:tensorflow:Evaluation [617/1000]\n",
      "INFO:tensorflow:Evaluation [618/1000]\n",
      "INFO:tensorflow:Evaluation [619/1000]\n",
      "INFO:tensorflow:Evaluation [620/1000]\n",
      "INFO:tensorflow:Evaluation [621/1000]\n",
      "INFO:tensorflow:Evaluation [622/1000]\n",
      "INFO:tensorflow:Evaluation [623/1000]\n",
      "INFO:tensorflow:Evaluation [624/1000]\n",
      "INFO:tensorflow:Evaluation [625/1000]\n",
      "INFO:tensorflow:Evaluation [626/1000]\n",
      "INFO:tensorflow:Evaluation [627/1000]\n",
      "INFO:tensorflow:Evaluation [628/1000]\n",
      "INFO:tensorflow:Evaluation [629/1000]\n",
      "INFO:tensorflow:Evaluation [630/1000]\n",
      "INFO:tensorflow:Evaluation [631/1000]\n",
      "INFO:tensorflow:Evaluation [632/1000]\n",
      "INFO:tensorflow:Evaluation [633/1000]\n",
      "INFO:tensorflow:Evaluation [634/1000]\n",
      "INFO:tensorflow:Evaluation [635/1000]\n",
      "INFO:tensorflow:Evaluation [636/1000]\n",
      "INFO:tensorflow:Evaluation [637/1000]\n",
      "INFO:tensorflow:Evaluation [638/1000]\n",
      "INFO:tensorflow:Evaluation [639/1000]\n",
      "INFO:tensorflow:Evaluation [640/1000]\n",
      "INFO:tensorflow:Evaluation [641/1000]\n",
      "INFO:tensorflow:Evaluation [642/1000]\n",
      "INFO:tensorflow:Evaluation [643/1000]\n",
      "INFO:tensorflow:Evaluation [644/1000]\n",
      "INFO:tensorflow:Evaluation [645/1000]\n",
      "INFO:tensorflow:Evaluation [646/1000]\n",
      "INFO:tensorflow:Evaluation [647/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [648/1000]\n",
      "INFO:tensorflow:Evaluation [649/1000]\n",
      "INFO:tensorflow:Evaluation [650/1000]\n",
      "INFO:tensorflow:Evaluation [651/1000]\n",
      "INFO:tensorflow:Evaluation [652/1000]\n",
      "INFO:tensorflow:Evaluation [653/1000]\n",
      "INFO:tensorflow:Evaluation [654/1000]\n",
      "INFO:tensorflow:Evaluation [655/1000]\n",
      "INFO:tensorflow:Evaluation [656/1000]\n",
      "INFO:tensorflow:Evaluation [657/1000]\n",
      "INFO:tensorflow:Evaluation [658/1000]\n",
      "INFO:tensorflow:Evaluation [659/1000]\n",
      "INFO:tensorflow:Evaluation [660/1000]\n",
      "INFO:tensorflow:Evaluation [661/1000]\n",
      "INFO:tensorflow:Evaluation [662/1000]\n",
      "INFO:tensorflow:Evaluation [663/1000]\n",
      "INFO:tensorflow:Evaluation [664/1000]\n",
      "INFO:tensorflow:Evaluation [665/1000]\n",
      "INFO:tensorflow:Evaluation [666/1000]\n",
      "INFO:tensorflow:Evaluation [667/1000]\n",
      "INFO:tensorflow:Evaluation [668/1000]\n",
      "INFO:tensorflow:Evaluation [669/1000]\n",
      "INFO:tensorflow:Evaluation [670/1000]\n",
      "INFO:tensorflow:Evaluation [671/1000]\n",
      "INFO:tensorflow:Evaluation [672/1000]\n",
      "INFO:tensorflow:Evaluation [673/1000]\n",
      "INFO:tensorflow:Evaluation [674/1000]\n",
      "INFO:tensorflow:Evaluation [675/1000]\n",
      "INFO:tensorflow:Evaluation [676/1000]\n",
      "INFO:tensorflow:Evaluation [677/1000]\n",
      "INFO:tensorflow:Evaluation [678/1000]\n",
      "INFO:tensorflow:Evaluation [679/1000]\n",
      "INFO:tensorflow:Evaluation [680/1000]\n",
      "INFO:tensorflow:Evaluation [681/1000]\n",
      "INFO:tensorflow:Evaluation [682/1000]\n",
      "INFO:tensorflow:Evaluation [683/1000]\n",
      "INFO:tensorflow:Evaluation [684/1000]\n",
      "INFO:tensorflow:Evaluation [685/1000]\n",
      "INFO:tensorflow:Evaluation [686/1000]\n",
      "INFO:tensorflow:Evaluation [687/1000]\n",
      "INFO:tensorflow:Evaluation [688/1000]\n",
      "INFO:tensorflow:Evaluation [689/1000]\n",
      "INFO:tensorflow:Evaluation [690/1000]\n",
      "INFO:tensorflow:Evaluation [691/1000]\n",
      "INFO:tensorflow:Evaluation [692/1000]\n",
      "INFO:tensorflow:Evaluation [693/1000]\n",
      "INFO:tensorflow:Evaluation [694/1000]\n",
      "INFO:tensorflow:Evaluation [695/1000]\n",
      "INFO:tensorflow:Evaluation [696/1000]\n",
      "INFO:tensorflow:Evaluation [697/1000]\n",
      "INFO:tensorflow:Evaluation [698/1000]\n",
      "INFO:tensorflow:Evaluation [699/1000]\n",
      "INFO:tensorflow:Evaluation [700/1000]\n",
      "INFO:tensorflow:Evaluation [701/1000]\n",
      "INFO:tensorflow:Evaluation [702/1000]\n",
      "INFO:tensorflow:Evaluation [703/1000]\n",
      "INFO:tensorflow:Evaluation [704/1000]\n",
      "INFO:tensorflow:Evaluation [705/1000]\n",
      "INFO:tensorflow:Evaluation [706/1000]\n",
      "INFO:tensorflow:Evaluation [707/1000]\n",
      "INFO:tensorflow:Evaluation [708/1000]\n",
      "INFO:tensorflow:Evaluation [709/1000]\n",
      "INFO:tensorflow:Evaluation [710/1000]\n",
      "INFO:tensorflow:Evaluation [711/1000]\n",
      "INFO:tensorflow:Evaluation [712/1000]\n",
      "INFO:tensorflow:Evaluation [713/1000]\n",
      "INFO:tensorflow:Evaluation [714/1000]\n",
      "INFO:tensorflow:Evaluation [715/1000]\n",
      "INFO:tensorflow:Evaluation [716/1000]\n",
      "INFO:tensorflow:Evaluation [717/1000]\n",
      "INFO:tensorflow:Evaluation [718/1000]\n",
      "INFO:tensorflow:Evaluation [719/1000]\n",
      "INFO:tensorflow:Evaluation [720/1000]\n",
      "INFO:tensorflow:Evaluation [721/1000]\n",
      "INFO:tensorflow:Evaluation [722/1000]\n",
      "INFO:tensorflow:Evaluation [723/1000]\n",
      "INFO:tensorflow:Evaluation [724/1000]\n",
      "INFO:tensorflow:Evaluation [725/1000]\n",
      "INFO:tensorflow:Evaluation [726/1000]\n",
      "INFO:tensorflow:Evaluation [727/1000]\n",
      "INFO:tensorflow:Evaluation [728/1000]\n",
      "INFO:tensorflow:Evaluation [729/1000]\n",
      "INFO:tensorflow:Evaluation [730/1000]\n",
      "INFO:tensorflow:Evaluation [731/1000]\n",
      "INFO:tensorflow:Evaluation [732/1000]\n",
      "INFO:tensorflow:Evaluation [733/1000]\n",
      "INFO:tensorflow:Evaluation [734/1000]\n",
      "INFO:tensorflow:Evaluation [735/1000]\n",
      "INFO:tensorflow:Evaluation [736/1000]\n",
      "INFO:tensorflow:Evaluation [737/1000]\n",
      "INFO:tensorflow:Evaluation [738/1000]\n",
      "INFO:tensorflow:Evaluation [739/1000]\n",
      "INFO:tensorflow:Evaluation [740/1000]\n",
      "INFO:tensorflow:Evaluation [741/1000]\n",
      "INFO:tensorflow:Evaluation [742/1000]\n",
      "INFO:tensorflow:Evaluation [743/1000]\n",
      "INFO:tensorflow:Evaluation [744/1000]\n",
      "INFO:tensorflow:Evaluation [745/1000]\n",
      "INFO:tensorflow:Evaluation [746/1000]\n",
      "INFO:tensorflow:Evaluation [747/1000]\n",
      "INFO:tensorflow:Evaluation [748/1000]\n",
      "INFO:tensorflow:Evaluation [749/1000]\n",
      "INFO:tensorflow:Evaluation [750/1000]\n",
      "INFO:tensorflow:Evaluation [751/1000]\n",
      "INFO:tensorflow:Evaluation [752/1000]\n",
      "INFO:tensorflow:Evaluation [753/1000]\n",
      "INFO:tensorflow:Evaluation [754/1000]\n",
      "INFO:tensorflow:Evaluation [755/1000]\n",
      "INFO:tensorflow:Evaluation [756/1000]\n",
      "INFO:tensorflow:Evaluation [757/1000]\n",
      "INFO:tensorflow:Evaluation [758/1000]\n",
      "INFO:tensorflow:Evaluation [759/1000]\n",
      "INFO:tensorflow:Evaluation [760/1000]\n",
      "INFO:tensorflow:Evaluation [761/1000]\n",
      "INFO:tensorflow:Evaluation [762/1000]\n",
      "INFO:tensorflow:Evaluation [763/1000]\n",
      "INFO:tensorflow:Evaluation [764/1000]\n",
      "INFO:tensorflow:Evaluation [765/1000]\n",
      "INFO:tensorflow:Evaluation [766/1000]\n",
      "INFO:tensorflow:Evaluation [767/1000]\n",
      "INFO:tensorflow:Evaluation [768/1000]\n",
      "INFO:tensorflow:Evaluation [769/1000]\n",
      "INFO:tensorflow:Evaluation [770/1000]\n",
      "INFO:tensorflow:Evaluation [771/1000]\n",
      "INFO:tensorflow:Evaluation [772/1000]\n",
      "INFO:tensorflow:Evaluation [773/1000]\n",
      "INFO:tensorflow:Evaluation [774/1000]\n",
      "INFO:tensorflow:Evaluation [775/1000]\n",
      "INFO:tensorflow:Evaluation [776/1000]\n",
      "INFO:tensorflow:Evaluation [777/1000]\n",
      "INFO:tensorflow:Evaluation [778/1000]\n",
      "INFO:tensorflow:Evaluation [779/1000]\n",
      "INFO:tensorflow:Evaluation [780/1000]\n",
      "INFO:tensorflow:Evaluation [781/1000]\n",
      "INFO:tensorflow:Evaluation [782/1000]\n",
      "INFO:tensorflow:Evaluation [783/1000]\n",
      "INFO:tensorflow:Evaluation [784/1000]\n",
      "INFO:tensorflow:Evaluation [785/1000]\n",
      "INFO:tensorflow:Evaluation [786/1000]\n",
      "INFO:tensorflow:Evaluation [787/1000]\n",
      "INFO:tensorflow:Evaluation [788/1000]\n",
      "INFO:tensorflow:Evaluation [789/1000]\n",
      "INFO:tensorflow:Evaluation [790/1000]\n",
      "INFO:tensorflow:Evaluation [791/1000]\n",
      "INFO:tensorflow:Evaluation [792/1000]\n",
      "INFO:tensorflow:Evaluation [793/1000]\n",
      "INFO:tensorflow:Evaluation [794/1000]\n",
      "INFO:tensorflow:Evaluation [795/1000]\n",
      "INFO:tensorflow:Evaluation [796/1000]\n",
      "INFO:tensorflow:Evaluation [797/1000]\n",
      "INFO:tensorflow:Evaluation [798/1000]\n",
      "INFO:tensorflow:Evaluation [799/1000]\n",
      "INFO:tensorflow:Evaluation [800/1000]\n",
      "INFO:tensorflow:Evaluation [801/1000]\n",
      "INFO:tensorflow:Evaluation [802/1000]\n",
      "INFO:tensorflow:Evaluation [803/1000]\n",
      "INFO:tensorflow:Evaluation [804/1000]\n",
      "INFO:tensorflow:Evaluation [805/1000]\n",
      "INFO:tensorflow:Evaluation [806/1000]\n",
      "INFO:tensorflow:Evaluation [807/1000]\n",
      "INFO:tensorflow:Evaluation [808/1000]\n",
      "INFO:tensorflow:Evaluation [809/1000]\n",
      "INFO:tensorflow:Evaluation [810/1000]\n",
      "INFO:tensorflow:Evaluation [811/1000]\n",
      "INFO:tensorflow:Evaluation [812/1000]\n",
      "INFO:tensorflow:Evaluation [813/1000]\n",
      "INFO:tensorflow:Evaluation [814/1000]\n",
      "INFO:tensorflow:Evaluation [815/1000]\n",
      "INFO:tensorflow:Evaluation [816/1000]\n",
      "INFO:tensorflow:Evaluation [817/1000]\n",
      "INFO:tensorflow:Evaluation [818/1000]\n",
      "INFO:tensorflow:Evaluation [819/1000]\n",
      "INFO:tensorflow:Evaluation [820/1000]\n",
      "INFO:tensorflow:Evaluation [821/1000]\n",
      "INFO:tensorflow:Evaluation [822/1000]\n",
      "INFO:tensorflow:Evaluation [823/1000]\n",
      "INFO:tensorflow:Evaluation [824/1000]\n",
      "INFO:tensorflow:Evaluation [825/1000]\n",
      "INFO:tensorflow:Evaluation [826/1000]\n",
      "INFO:tensorflow:Evaluation [827/1000]\n",
      "INFO:tensorflow:Evaluation [828/1000]\n",
      "INFO:tensorflow:Evaluation [829/1000]\n",
      "INFO:tensorflow:Evaluation [830/1000]\n",
      "INFO:tensorflow:Evaluation [831/1000]\n",
      "INFO:tensorflow:Evaluation [832/1000]\n",
      "INFO:tensorflow:Evaluation [833/1000]\n",
      "INFO:tensorflow:Evaluation [834/1000]\n",
      "INFO:tensorflow:Evaluation [835/1000]\n",
      "INFO:tensorflow:Evaluation [836/1000]\n",
      "INFO:tensorflow:Evaluation [837/1000]\n",
      "INFO:tensorflow:Evaluation [838/1000]\n",
      "INFO:tensorflow:Evaluation [839/1000]\n",
      "INFO:tensorflow:Evaluation [840/1000]\n",
      "INFO:tensorflow:Evaluation [841/1000]\n",
      "INFO:tensorflow:Evaluation [842/1000]\n",
      "INFO:tensorflow:Evaluation [843/1000]\n",
      "INFO:tensorflow:Evaluation [844/1000]\n",
      "INFO:tensorflow:Evaluation [845/1000]\n",
      "INFO:tensorflow:Evaluation [846/1000]\n",
      "INFO:tensorflow:Evaluation [847/1000]\n",
      "INFO:tensorflow:Evaluation [848/1000]\n",
      "INFO:tensorflow:Evaluation [849/1000]\n",
      "INFO:tensorflow:Evaluation [850/1000]\n",
      "INFO:tensorflow:Evaluation [851/1000]\n",
      "INFO:tensorflow:Evaluation [852/1000]\n",
      "INFO:tensorflow:Evaluation [853/1000]\n",
      "INFO:tensorflow:Evaluation [854/1000]\n",
      "INFO:tensorflow:Evaluation [855/1000]\n",
      "INFO:tensorflow:Evaluation [856/1000]\n",
      "INFO:tensorflow:Evaluation [857/1000]\n",
      "INFO:tensorflow:Evaluation [858/1000]\n",
      "INFO:tensorflow:Evaluation [859/1000]\n",
      "INFO:tensorflow:Evaluation [860/1000]\n",
      "INFO:tensorflow:Evaluation [861/1000]\n",
      "INFO:tensorflow:Evaluation [862/1000]\n",
      "INFO:tensorflow:Evaluation [863/1000]\n",
      "INFO:tensorflow:Evaluation [864/1000]\n",
      "INFO:tensorflow:Evaluation [865/1000]\n",
      "INFO:tensorflow:Evaluation [866/1000]\n",
      "INFO:tensorflow:Evaluation [867/1000]\n",
      "INFO:tensorflow:Evaluation [868/1000]\n",
      "INFO:tensorflow:Evaluation [869/1000]\n",
      "INFO:tensorflow:Evaluation [870/1000]\n",
      "INFO:tensorflow:Evaluation [871/1000]\n",
      "INFO:tensorflow:Evaluation [872/1000]\n",
      "INFO:tensorflow:Evaluation [873/1000]\n",
      "INFO:tensorflow:Evaluation [874/1000]\n",
      "INFO:tensorflow:Evaluation [875/1000]\n",
      "INFO:tensorflow:Evaluation [876/1000]\n",
      "INFO:tensorflow:Evaluation [877/1000]\n",
      "INFO:tensorflow:Evaluation [878/1000]\n",
      "INFO:tensorflow:Evaluation [879/1000]\n",
      "INFO:tensorflow:Evaluation [880/1000]\n",
      "INFO:tensorflow:Evaluation [881/1000]\n",
      "INFO:tensorflow:Evaluation [882/1000]\n",
      "INFO:tensorflow:Evaluation [883/1000]\n",
      "INFO:tensorflow:Evaluation [884/1000]\n",
      "INFO:tensorflow:Evaluation [885/1000]\n",
      "INFO:tensorflow:Evaluation [886/1000]\n",
      "INFO:tensorflow:Evaluation [887/1000]\n",
      "INFO:tensorflow:Evaluation [888/1000]\n",
      "INFO:tensorflow:Evaluation [889/1000]\n",
      "INFO:tensorflow:Evaluation [890/1000]\n",
      "INFO:tensorflow:Evaluation [891/1000]\n",
      "INFO:tensorflow:Evaluation [892/1000]\n",
      "INFO:tensorflow:Evaluation [893/1000]\n",
      "INFO:tensorflow:Evaluation [894/1000]\n",
      "INFO:tensorflow:Evaluation [895/1000]\n",
      "INFO:tensorflow:Evaluation [896/1000]\n",
      "INFO:tensorflow:Evaluation [897/1000]\n",
      "INFO:tensorflow:Evaluation [898/1000]\n",
      "INFO:tensorflow:Evaluation [899/1000]\n",
      "INFO:tensorflow:Evaluation [900/1000]\n",
      "INFO:tensorflow:Evaluation [901/1000]\n",
      "INFO:tensorflow:Evaluation [902/1000]\n",
      "INFO:tensorflow:Evaluation [903/1000]\n",
      "INFO:tensorflow:Evaluation [904/1000]\n",
      "INFO:tensorflow:Evaluation [905/1000]\n",
      "INFO:tensorflow:Evaluation [906/1000]\n",
      "INFO:tensorflow:Evaluation [907/1000]\n",
      "INFO:tensorflow:Evaluation [908/1000]\n",
      "INFO:tensorflow:Evaluation [909/1000]\n",
      "INFO:tensorflow:Evaluation [910/1000]\n",
      "INFO:tensorflow:Evaluation [911/1000]\n",
      "INFO:tensorflow:Evaluation [912/1000]\n",
      "INFO:tensorflow:Evaluation [913/1000]\n",
      "INFO:tensorflow:Evaluation [914/1000]\n",
      "INFO:tensorflow:Evaluation [915/1000]\n",
      "INFO:tensorflow:Evaluation [916/1000]\n",
      "INFO:tensorflow:Evaluation [917/1000]\n",
      "INFO:tensorflow:Evaluation [918/1000]\n",
      "INFO:tensorflow:Evaluation [919/1000]\n",
      "INFO:tensorflow:Evaluation [920/1000]\n",
      "INFO:tensorflow:Evaluation [921/1000]\n",
      "INFO:tensorflow:Evaluation [922/1000]\n",
      "INFO:tensorflow:Evaluation [923/1000]\n",
      "INFO:tensorflow:Evaluation [924/1000]\n",
      "INFO:tensorflow:Evaluation [925/1000]\n",
      "INFO:tensorflow:Evaluation [926/1000]\n",
      "INFO:tensorflow:Evaluation [927/1000]\n",
      "INFO:tensorflow:Evaluation [928/1000]\n",
      "INFO:tensorflow:Evaluation [929/1000]\n",
      "INFO:tensorflow:Evaluation [930/1000]\n",
      "INFO:tensorflow:Evaluation [931/1000]\n",
      "INFO:tensorflow:Evaluation [932/1000]\n",
      "INFO:tensorflow:Evaluation [933/1000]\n",
      "INFO:tensorflow:Evaluation [934/1000]\n",
      "INFO:tensorflow:Evaluation [935/1000]\n",
      "INFO:tensorflow:Evaluation [936/1000]\n",
      "INFO:tensorflow:Evaluation [937/1000]\n",
      "INFO:tensorflow:Evaluation [938/1000]\n",
      "INFO:tensorflow:Evaluation [939/1000]\n",
      "INFO:tensorflow:Evaluation [940/1000]\n",
      "INFO:tensorflow:Evaluation [941/1000]\n",
      "INFO:tensorflow:Evaluation [942/1000]\n",
      "INFO:tensorflow:Evaluation [943/1000]\n",
      "INFO:tensorflow:Evaluation [944/1000]\n",
      "INFO:tensorflow:Evaluation [945/1000]\n",
      "INFO:tensorflow:Evaluation [946/1000]\n",
      "INFO:tensorflow:Evaluation [947/1000]\n",
      "INFO:tensorflow:Evaluation [948/1000]\n",
      "INFO:tensorflow:Evaluation [949/1000]\n",
      "INFO:tensorflow:Evaluation [950/1000]\n",
      "INFO:tensorflow:Evaluation [951/1000]\n",
      "INFO:tensorflow:Evaluation [952/1000]\n",
      "INFO:tensorflow:Evaluation [953/1000]\n",
      "INFO:tensorflow:Evaluation [954/1000]\n",
      "INFO:tensorflow:Evaluation [955/1000]\n",
      "INFO:tensorflow:Evaluation [956/1000]\n",
      "INFO:tensorflow:Evaluation [957/1000]\n",
      "INFO:tensorflow:Evaluation [958/1000]\n",
      "INFO:tensorflow:Evaluation [959/1000]\n",
      "INFO:tensorflow:Evaluation [960/1000]\n",
      "INFO:tensorflow:Evaluation [961/1000]\n",
      "INFO:tensorflow:Evaluation [962/1000]\n",
      "INFO:tensorflow:Evaluation [963/1000]\n",
      "INFO:tensorflow:Evaluation [964/1000]\n",
      "INFO:tensorflow:Evaluation [965/1000]\n",
      "INFO:tensorflow:Evaluation [966/1000]\n",
      "INFO:tensorflow:Evaluation [967/1000]\n",
      "INFO:tensorflow:Evaluation [968/1000]\n",
      "INFO:tensorflow:Evaluation [969/1000]\n",
      "INFO:tensorflow:Evaluation [970/1000]\n",
      "INFO:tensorflow:Evaluation [971/1000]\n",
      "INFO:tensorflow:Evaluation [972/1000]\n",
      "INFO:tensorflow:Evaluation [973/1000]\n",
      "INFO:tensorflow:Evaluation [974/1000]\n",
      "INFO:tensorflow:Evaluation [975/1000]\n",
      "INFO:tensorflow:Evaluation [976/1000]\n",
      "INFO:tensorflow:Evaluation [977/1000]\n",
      "INFO:tensorflow:Evaluation [978/1000]\n",
      "INFO:tensorflow:Evaluation [979/1000]\n",
      "INFO:tensorflow:Evaluation [980/1000]\n",
      "INFO:tensorflow:Evaluation [981/1000]\n",
      "INFO:tensorflow:Evaluation [982/1000]\n",
      "INFO:tensorflow:Evaluation [983/1000]\n",
      "INFO:tensorflow:Evaluation [984/1000]\n",
      "INFO:tensorflow:Evaluation [985/1000]\n",
      "INFO:tensorflow:Evaluation [986/1000]\n",
      "INFO:tensorflow:Evaluation [987/1000]\n",
      "INFO:tensorflow:Evaluation [988/1000]\n",
      "INFO:tensorflow:Evaluation [989/1000]\n",
      "INFO:tensorflow:Evaluation [990/1000]\n",
      "INFO:tensorflow:Evaluation [991/1000]\n",
      "INFO:tensorflow:Evaluation [992/1000]\n",
      "INFO:tensorflow:Evaluation [993/1000]\n",
      "INFO:tensorflow:Evaluation [994/1000]\n",
      "INFO:tensorflow:Evaluation [995/1000]\n",
      "INFO:tensorflow:Evaluation [996/1000]\n",
      "INFO:tensorflow:Evaluation [997/1000]\n",
      "INFO:tensorflow:Evaluation [998/1000]\n",
      "INFO:tensorflow:Evaluation [999/1000]\n",
      "INFO:tensorflow:Evaluation [1000/1000]\n",
      "INFO:tensorflow:Finished evaluation at 2017-08-29-07:31:15\n",
      "INFO:tensorflow:Saving dict for global step 1000: average_loss = 1.16846, global_step = 1000, loss = 4.67384\n"
     ]
    }
   ],
   "source": [
    "train_metrics = estimator.evaluate(input_fn=train_input_func,steps=1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Starting evaluation at 2017-08-29-07:35:50\n",
      "INFO:tensorflow:Restoring parameters from C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt-1000\n",
      "INFO:tensorflow:Evaluation [1/1000]\n",
      "INFO:tensorflow:Evaluation [2/1000]\n",
      "INFO:tensorflow:Evaluation [3/1000]\n",
      "INFO:tensorflow:Evaluation [4/1000]\n",
      "INFO:tensorflow:Evaluation [5/1000]\n",
      "INFO:tensorflow:Evaluation [6/1000]\n",
      "INFO:tensorflow:Evaluation [7/1000]\n",
      "INFO:tensorflow:Evaluation [8/1000]\n",
      "INFO:tensorflow:Evaluation [9/1000]\n",
      "INFO:tensorflow:Evaluation [10/1000]\n",
      "INFO:tensorflow:Evaluation [11/1000]\n",
      "INFO:tensorflow:Evaluation [12/1000]\n",
      "INFO:tensorflow:Evaluation [13/1000]\n",
      "INFO:tensorflow:Evaluation [14/1000]\n",
      "INFO:tensorflow:Evaluation [15/1000]\n",
      "INFO:tensorflow:Evaluation [16/1000]\n",
      "INFO:tensorflow:Evaluation [17/1000]\n",
      "INFO:tensorflow:Evaluation [18/1000]\n",
      "INFO:tensorflow:Evaluation [19/1000]\n",
      "INFO:tensorflow:Evaluation [20/1000]\n",
      "INFO:tensorflow:Evaluation [21/1000]\n",
      "INFO:tensorflow:Evaluation [22/1000]\n",
      "INFO:tensorflow:Evaluation [23/1000]\n",
      "INFO:tensorflow:Evaluation [24/1000]\n",
      "INFO:tensorflow:Evaluation [25/1000]\n",
      "INFO:tensorflow:Evaluation [26/1000]\n",
      "INFO:tensorflow:Evaluation [27/1000]\n",
      "INFO:tensorflow:Evaluation [28/1000]\n",
      "INFO:tensorflow:Evaluation [29/1000]\n",
      "INFO:tensorflow:Evaluation [30/1000]\n",
      "INFO:tensorflow:Evaluation [31/1000]\n",
      "INFO:tensorflow:Evaluation [32/1000]\n",
      "INFO:tensorflow:Evaluation [33/1000]\n",
      "INFO:tensorflow:Evaluation [34/1000]\n",
      "INFO:tensorflow:Evaluation [35/1000]\n",
      "INFO:tensorflow:Evaluation [36/1000]\n",
      "INFO:tensorflow:Evaluation [37/1000]\n",
      "INFO:tensorflow:Evaluation [38/1000]\n",
      "INFO:tensorflow:Evaluation [39/1000]\n",
      "INFO:tensorflow:Evaluation [40/1000]\n",
      "INFO:tensorflow:Evaluation [41/1000]\n",
      "INFO:tensorflow:Evaluation [42/1000]\n",
      "INFO:tensorflow:Evaluation [43/1000]\n",
      "INFO:tensorflow:Evaluation [44/1000]\n",
      "INFO:tensorflow:Evaluation [45/1000]\n",
      "INFO:tensorflow:Evaluation [46/1000]\n",
      "INFO:tensorflow:Evaluation [47/1000]\n",
      "INFO:tensorflow:Evaluation [48/1000]\n",
      "INFO:tensorflow:Evaluation [49/1000]\n",
      "INFO:tensorflow:Evaluation [50/1000]\n",
      "INFO:tensorflow:Evaluation [51/1000]\n",
      "INFO:tensorflow:Evaluation [52/1000]\n",
      "INFO:tensorflow:Evaluation [53/1000]\n",
      "INFO:tensorflow:Evaluation [54/1000]\n",
      "INFO:tensorflow:Evaluation [55/1000]\n",
      "INFO:tensorflow:Evaluation [56/1000]\n",
      "INFO:tensorflow:Evaluation [57/1000]\n",
      "INFO:tensorflow:Evaluation [58/1000]\n",
      "INFO:tensorflow:Evaluation [59/1000]\n",
      "INFO:tensorflow:Evaluation [60/1000]\n",
      "INFO:tensorflow:Evaluation [61/1000]\n",
      "INFO:tensorflow:Evaluation [62/1000]\n",
      "INFO:tensorflow:Evaluation [63/1000]\n",
      "INFO:tensorflow:Evaluation [64/1000]\n",
      "INFO:tensorflow:Evaluation [65/1000]\n",
      "INFO:tensorflow:Evaluation [66/1000]\n",
      "INFO:tensorflow:Evaluation [67/1000]\n",
      "INFO:tensorflow:Evaluation [68/1000]\n",
      "INFO:tensorflow:Evaluation [69/1000]\n",
      "INFO:tensorflow:Evaluation [70/1000]\n",
      "INFO:tensorflow:Evaluation [71/1000]\n",
      "INFO:tensorflow:Evaluation [72/1000]\n",
      "INFO:tensorflow:Evaluation [73/1000]\n",
      "INFO:tensorflow:Evaluation [74/1000]\n",
      "INFO:tensorflow:Evaluation [75/1000]\n",
      "INFO:tensorflow:Evaluation [76/1000]\n",
      "INFO:tensorflow:Evaluation [77/1000]\n",
      "INFO:tensorflow:Evaluation [78/1000]\n",
      "INFO:tensorflow:Evaluation [79/1000]\n",
      "INFO:tensorflow:Evaluation [80/1000]\n",
      "INFO:tensorflow:Evaluation [81/1000]\n",
      "INFO:tensorflow:Evaluation [82/1000]\n",
      "INFO:tensorflow:Evaluation [83/1000]\n",
      "INFO:tensorflow:Evaluation [84/1000]\n",
      "INFO:tensorflow:Evaluation [85/1000]\n",
      "INFO:tensorflow:Evaluation [86/1000]\n",
      "INFO:tensorflow:Evaluation [87/1000]\n",
      "INFO:tensorflow:Evaluation [88/1000]\n",
      "INFO:tensorflow:Evaluation [89/1000]\n",
      "INFO:tensorflow:Evaluation [90/1000]\n",
      "INFO:tensorflow:Evaluation [91/1000]\n",
      "INFO:tensorflow:Evaluation [92/1000]\n",
      "INFO:tensorflow:Evaluation [93/1000]\n",
      "INFO:tensorflow:Evaluation [94/1000]\n",
      "INFO:tensorflow:Evaluation [95/1000]\n",
      "INFO:tensorflow:Evaluation [96/1000]\n",
      "INFO:tensorflow:Evaluation [97/1000]\n",
      "INFO:tensorflow:Evaluation [98/1000]\n",
      "INFO:tensorflow:Evaluation [99/1000]\n",
      "INFO:tensorflow:Evaluation [100/1000]\n",
      "INFO:tensorflow:Evaluation [101/1000]\n",
      "INFO:tensorflow:Evaluation [102/1000]\n",
      "INFO:tensorflow:Evaluation [103/1000]\n",
      "INFO:tensorflow:Evaluation [104/1000]\n",
      "INFO:tensorflow:Evaluation [105/1000]\n",
      "INFO:tensorflow:Evaluation [106/1000]\n",
      "INFO:tensorflow:Evaluation [107/1000]\n",
      "INFO:tensorflow:Evaluation [108/1000]\n",
      "INFO:tensorflow:Evaluation [109/1000]\n",
      "INFO:tensorflow:Evaluation [110/1000]\n",
      "INFO:tensorflow:Evaluation [111/1000]\n",
      "INFO:tensorflow:Evaluation [112/1000]\n",
      "INFO:tensorflow:Evaluation [113/1000]\n",
      "INFO:tensorflow:Evaluation [114/1000]\n",
      "INFO:tensorflow:Evaluation [115/1000]\n",
      "INFO:tensorflow:Evaluation [116/1000]\n",
      "INFO:tensorflow:Evaluation [117/1000]\n",
      "INFO:tensorflow:Evaluation [118/1000]\n",
      "INFO:tensorflow:Evaluation [119/1000]\n",
      "INFO:tensorflow:Evaluation [120/1000]\n",
      "INFO:tensorflow:Evaluation [121/1000]\n",
      "INFO:tensorflow:Evaluation [122/1000]\n",
      "INFO:tensorflow:Evaluation [123/1000]\n",
      "INFO:tensorflow:Evaluation [124/1000]\n",
      "INFO:tensorflow:Evaluation [125/1000]\n",
      "INFO:tensorflow:Evaluation [126/1000]\n",
      "INFO:tensorflow:Evaluation [127/1000]\n",
      "INFO:tensorflow:Evaluation [128/1000]\n",
      "INFO:tensorflow:Evaluation [129/1000]\n",
      "INFO:tensorflow:Evaluation [130/1000]\n",
      "INFO:tensorflow:Evaluation [131/1000]\n",
      "INFO:tensorflow:Evaluation [132/1000]\n",
      "INFO:tensorflow:Evaluation [133/1000]\n",
      "INFO:tensorflow:Evaluation [134/1000]\n",
      "INFO:tensorflow:Evaluation [135/1000]\n",
      "INFO:tensorflow:Evaluation [136/1000]\n",
      "INFO:tensorflow:Evaluation [137/1000]\n",
      "INFO:tensorflow:Evaluation [138/1000]\n",
      "INFO:tensorflow:Evaluation [139/1000]\n",
      "INFO:tensorflow:Evaluation [140/1000]\n",
      "INFO:tensorflow:Evaluation [141/1000]\n",
      "INFO:tensorflow:Evaluation [142/1000]\n",
      "INFO:tensorflow:Evaluation [143/1000]\n",
      "INFO:tensorflow:Evaluation [144/1000]\n",
      "INFO:tensorflow:Evaluation [145/1000]\n",
      "INFO:tensorflow:Evaluation [146/1000]\n",
      "INFO:tensorflow:Evaluation [147/1000]\n",
      "INFO:tensorflow:Evaluation [148/1000]\n",
      "INFO:tensorflow:Evaluation [149/1000]\n",
      "INFO:tensorflow:Evaluation [150/1000]\n",
      "INFO:tensorflow:Evaluation [151/1000]\n",
      "INFO:tensorflow:Evaluation [152/1000]\n",
      "INFO:tensorflow:Evaluation [153/1000]\n",
      "INFO:tensorflow:Evaluation [154/1000]\n",
      "INFO:tensorflow:Evaluation [155/1000]\n",
      "INFO:tensorflow:Evaluation [156/1000]\n",
      "INFO:tensorflow:Evaluation [157/1000]\n",
      "INFO:tensorflow:Evaluation [158/1000]\n",
      "INFO:tensorflow:Evaluation [159/1000]\n",
      "INFO:tensorflow:Evaluation [160/1000]\n",
      "INFO:tensorflow:Evaluation [161/1000]\n",
      "INFO:tensorflow:Evaluation [162/1000]\n",
      "INFO:tensorflow:Evaluation [163/1000]\n",
      "INFO:tensorflow:Evaluation [164/1000]\n",
      "INFO:tensorflow:Evaluation [165/1000]\n",
      "INFO:tensorflow:Evaluation [166/1000]\n",
      "INFO:tensorflow:Evaluation [167/1000]\n",
      "INFO:tensorflow:Evaluation [168/1000]\n",
      "INFO:tensorflow:Evaluation [169/1000]\n",
      "INFO:tensorflow:Evaluation [170/1000]\n",
      "INFO:tensorflow:Evaluation [171/1000]\n",
      "INFO:tensorflow:Evaluation [172/1000]\n",
      "INFO:tensorflow:Evaluation [173/1000]\n",
      "INFO:tensorflow:Evaluation [174/1000]\n",
      "INFO:tensorflow:Evaluation [175/1000]\n",
      "INFO:tensorflow:Evaluation [176/1000]\n",
      "INFO:tensorflow:Evaluation [177/1000]\n",
      "INFO:tensorflow:Evaluation [178/1000]\n",
      "INFO:tensorflow:Evaluation [179/1000]\n",
      "INFO:tensorflow:Evaluation [180/1000]\n",
      "INFO:tensorflow:Evaluation [181/1000]\n",
      "INFO:tensorflow:Evaluation [182/1000]\n",
      "INFO:tensorflow:Evaluation [183/1000]\n",
      "INFO:tensorflow:Evaluation [184/1000]\n",
      "INFO:tensorflow:Evaluation [185/1000]\n",
      "INFO:tensorflow:Evaluation [186/1000]\n",
      "INFO:tensorflow:Evaluation [187/1000]\n",
      "INFO:tensorflow:Evaluation [188/1000]\n",
      "INFO:tensorflow:Evaluation [189/1000]\n",
      "INFO:tensorflow:Evaluation [190/1000]\n",
      "INFO:tensorflow:Evaluation [191/1000]\n",
      "INFO:tensorflow:Evaluation [192/1000]\n",
      "INFO:tensorflow:Evaluation [193/1000]\n",
      "INFO:tensorflow:Evaluation [194/1000]\n",
      "INFO:tensorflow:Evaluation [195/1000]\n",
      "INFO:tensorflow:Evaluation [196/1000]\n",
      "INFO:tensorflow:Evaluation [197/1000]\n",
      "INFO:tensorflow:Evaluation [198/1000]\n",
      "INFO:tensorflow:Evaluation [199/1000]\n",
      "INFO:tensorflow:Evaluation [200/1000]\n",
      "INFO:tensorflow:Evaluation [201/1000]\n",
      "INFO:tensorflow:Evaluation [202/1000]\n",
      "INFO:tensorflow:Evaluation [203/1000]\n",
      "INFO:tensorflow:Evaluation [204/1000]\n",
      "INFO:tensorflow:Evaluation [205/1000]\n",
      "INFO:tensorflow:Evaluation [206/1000]\n",
      "INFO:tensorflow:Evaluation [207/1000]\n",
      "INFO:tensorflow:Evaluation [208/1000]\n",
      "INFO:tensorflow:Evaluation [209/1000]\n",
      "INFO:tensorflow:Evaluation [210/1000]\n",
      "INFO:tensorflow:Evaluation [211/1000]\n",
      "INFO:tensorflow:Evaluation [212/1000]\n",
      "INFO:tensorflow:Evaluation [213/1000]\n",
      "INFO:tensorflow:Evaluation [214/1000]\n",
      "INFO:tensorflow:Evaluation [215/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [216/1000]\n",
      "INFO:tensorflow:Evaluation [217/1000]\n",
      "INFO:tensorflow:Evaluation [218/1000]\n",
      "INFO:tensorflow:Evaluation [219/1000]\n",
      "INFO:tensorflow:Evaluation [220/1000]\n",
      "INFO:tensorflow:Evaluation [221/1000]\n",
      "INFO:tensorflow:Evaluation [222/1000]\n",
      "INFO:tensorflow:Evaluation [223/1000]\n",
      "INFO:tensorflow:Evaluation [224/1000]\n",
      "INFO:tensorflow:Evaluation [225/1000]\n",
      "INFO:tensorflow:Evaluation [226/1000]\n",
      "INFO:tensorflow:Evaluation [227/1000]\n",
      "INFO:tensorflow:Evaluation [228/1000]\n",
      "INFO:tensorflow:Evaluation [229/1000]\n",
      "INFO:tensorflow:Evaluation [230/1000]\n",
      "INFO:tensorflow:Evaluation [231/1000]\n",
      "INFO:tensorflow:Evaluation [232/1000]\n",
      "INFO:tensorflow:Evaluation [233/1000]\n",
      "INFO:tensorflow:Evaluation [234/1000]\n",
      "INFO:tensorflow:Evaluation [235/1000]\n",
      "INFO:tensorflow:Evaluation [236/1000]\n",
      "INFO:tensorflow:Evaluation [237/1000]\n",
      "INFO:tensorflow:Evaluation [238/1000]\n",
      "INFO:tensorflow:Evaluation [239/1000]\n",
      "INFO:tensorflow:Evaluation [240/1000]\n",
      "INFO:tensorflow:Evaluation [241/1000]\n",
      "INFO:tensorflow:Evaluation [242/1000]\n",
      "INFO:tensorflow:Evaluation [243/1000]\n",
      "INFO:tensorflow:Evaluation [244/1000]\n",
      "INFO:tensorflow:Evaluation [245/1000]\n",
      "INFO:tensorflow:Evaluation [246/1000]\n",
      "INFO:tensorflow:Evaluation [247/1000]\n",
      "INFO:tensorflow:Evaluation [248/1000]\n",
      "INFO:tensorflow:Evaluation [249/1000]\n",
      "INFO:tensorflow:Evaluation [250/1000]\n",
      "INFO:tensorflow:Evaluation [251/1000]\n",
      "INFO:tensorflow:Evaluation [252/1000]\n",
      "INFO:tensorflow:Evaluation [253/1000]\n",
      "INFO:tensorflow:Evaluation [254/1000]\n",
      "INFO:tensorflow:Evaluation [255/1000]\n",
      "INFO:tensorflow:Evaluation [256/1000]\n",
      "INFO:tensorflow:Evaluation [257/1000]\n",
      "INFO:tensorflow:Evaluation [258/1000]\n",
      "INFO:tensorflow:Evaluation [259/1000]\n",
      "INFO:tensorflow:Evaluation [260/1000]\n",
      "INFO:tensorflow:Evaluation [261/1000]\n",
      "INFO:tensorflow:Evaluation [262/1000]\n",
      "INFO:tensorflow:Evaluation [263/1000]\n",
      "INFO:tensorflow:Evaluation [264/1000]\n",
      "INFO:tensorflow:Evaluation [265/1000]\n",
      "INFO:tensorflow:Evaluation [266/1000]\n",
      "INFO:tensorflow:Evaluation [267/1000]\n",
      "INFO:tensorflow:Evaluation [268/1000]\n",
      "INFO:tensorflow:Evaluation [269/1000]\n",
      "INFO:tensorflow:Evaluation [270/1000]\n",
      "INFO:tensorflow:Evaluation [271/1000]\n",
      "INFO:tensorflow:Evaluation [272/1000]\n",
      "INFO:tensorflow:Evaluation [273/1000]\n",
      "INFO:tensorflow:Evaluation [274/1000]\n",
      "INFO:tensorflow:Evaluation [275/1000]\n",
      "INFO:tensorflow:Evaluation [276/1000]\n",
      "INFO:tensorflow:Evaluation [277/1000]\n",
      "INFO:tensorflow:Evaluation [278/1000]\n",
      "INFO:tensorflow:Evaluation [279/1000]\n",
      "INFO:tensorflow:Evaluation [280/1000]\n",
      "INFO:tensorflow:Evaluation [281/1000]\n",
      "INFO:tensorflow:Evaluation [282/1000]\n",
      "INFO:tensorflow:Evaluation [283/1000]\n",
      "INFO:tensorflow:Evaluation [284/1000]\n",
      "INFO:tensorflow:Evaluation [285/1000]\n",
      "INFO:tensorflow:Evaluation [286/1000]\n",
      "INFO:tensorflow:Evaluation [287/1000]\n",
      "INFO:tensorflow:Evaluation [288/1000]\n",
      "INFO:tensorflow:Evaluation [289/1000]\n",
      "INFO:tensorflow:Evaluation [290/1000]\n",
      "INFO:tensorflow:Evaluation [291/1000]\n",
      "INFO:tensorflow:Evaluation [292/1000]\n",
      "INFO:tensorflow:Evaluation [293/1000]\n",
      "INFO:tensorflow:Evaluation [294/1000]\n",
      "INFO:tensorflow:Evaluation [295/1000]\n",
      "INFO:tensorflow:Evaluation [296/1000]\n",
      "INFO:tensorflow:Evaluation [297/1000]\n",
      "INFO:tensorflow:Evaluation [298/1000]\n",
      "INFO:tensorflow:Evaluation [299/1000]\n",
      "INFO:tensorflow:Evaluation [300/1000]\n",
      "INFO:tensorflow:Evaluation [301/1000]\n",
      "INFO:tensorflow:Evaluation [302/1000]\n",
      "INFO:tensorflow:Evaluation [303/1000]\n",
      "INFO:tensorflow:Evaluation [304/1000]\n",
      "INFO:tensorflow:Evaluation [305/1000]\n",
      "INFO:tensorflow:Evaluation [306/1000]\n",
      "INFO:tensorflow:Evaluation [307/1000]\n",
      "INFO:tensorflow:Evaluation [308/1000]\n",
      "INFO:tensorflow:Evaluation [309/1000]\n",
      "INFO:tensorflow:Evaluation [310/1000]\n",
      "INFO:tensorflow:Evaluation [311/1000]\n",
      "INFO:tensorflow:Evaluation [312/1000]\n",
      "INFO:tensorflow:Evaluation [313/1000]\n",
      "INFO:tensorflow:Evaluation [314/1000]\n",
      "INFO:tensorflow:Evaluation [315/1000]\n",
      "INFO:tensorflow:Evaluation [316/1000]\n",
      "INFO:tensorflow:Evaluation [317/1000]\n",
      "INFO:tensorflow:Evaluation [318/1000]\n",
      "INFO:tensorflow:Evaluation [319/1000]\n",
      "INFO:tensorflow:Evaluation [320/1000]\n",
      "INFO:tensorflow:Evaluation [321/1000]\n",
      "INFO:tensorflow:Evaluation [322/1000]\n",
      "INFO:tensorflow:Evaluation [323/1000]\n",
      "INFO:tensorflow:Evaluation [324/1000]\n",
      "INFO:tensorflow:Evaluation [325/1000]\n",
      "INFO:tensorflow:Evaluation [326/1000]\n",
      "INFO:tensorflow:Evaluation [327/1000]\n",
      "INFO:tensorflow:Evaluation [328/1000]\n",
      "INFO:tensorflow:Evaluation [329/1000]\n",
      "INFO:tensorflow:Evaluation [330/1000]\n",
      "INFO:tensorflow:Evaluation [331/1000]\n",
      "INFO:tensorflow:Evaluation [332/1000]\n",
      "INFO:tensorflow:Evaluation [333/1000]\n",
      "INFO:tensorflow:Evaluation [334/1000]\n",
      "INFO:tensorflow:Evaluation [335/1000]\n",
      "INFO:tensorflow:Evaluation [336/1000]\n",
      "INFO:tensorflow:Evaluation [337/1000]\n",
      "INFO:tensorflow:Evaluation [338/1000]\n",
      "INFO:tensorflow:Evaluation [339/1000]\n",
      "INFO:tensorflow:Evaluation [340/1000]\n",
      "INFO:tensorflow:Evaluation [341/1000]\n",
      "INFO:tensorflow:Evaluation [342/1000]\n",
      "INFO:tensorflow:Evaluation [343/1000]\n",
      "INFO:tensorflow:Evaluation [344/1000]\n",
      "INFO:tensorflow:Evaluation [345/1000]\n",
      "INFO:tensorflow:Evaluation [346/1000]\n",
      "INFO:tensorflow:Evaluation [347/1000]\n",
      "INFO:tensorflow:Evaluation [348/1000]\n",
      "INFO:tensorflow:Evaluation [349/1000]\n",
      "INFO:tensorflow:Evaluation [350/1000]\n",
      "INFO:tensorflow:Evaluation [351/1000]\n",
      "INFO:tensorflow:Evaluation [352/1000]\n",
      "INFO:tensorflow:Evaluation [353/1000]\n",
      "INFO:tensorflow:Evaluation [354/1000]\n",
      "INFO:tensorflow:Evaluation [355/1000]\n",
      "INFO:tensorflow:Evaluation [356/1000]\n",
      "INFO:tensorflow:Evaluation [357/1000]\n",
      "INFO:tensorflow:Evaluation [358/1000]\n",
      "INFO:tensorflow:Evaluation [359/1000]\n",
      "INFO:tensorflow:Evaluation [360/1000]\n",
      "INFO:tensorflow:Evaluation [361/1000]\n",
      "INFO:tensorflow:Evaluation [362/1000]\n",
      "INFO:tensorflow:Evaluation [363/1000]\n",
      "INFO:tensorflow:Evaluation [364/1000]\n",
      "INFO:tensorflow:Evaluation [365/1000]\n",
      "INFO:tensorflow:Evaluation [366/1000]\n",
      "INFO:tensorflow:Evaluation [367/1000]\n",
      "INFO:tensorflow:Evaluation [368/1000]\n",
      "INFO:tensorflow:Evaluation [369/1000]\n",
      "INFO:tensorflow:Evaluation [370/1000]\n",
      "INFO:tensorflow:Evaluation [371/1000]\n",
      "INFO:tensorflow:Evaluation [372/1000]\n",
      "INFO:tensorflow:Evaluation [373/1000]\n",
      "INFO:tensorflow:Evaluation [374/1000]\n",
      "INFO:tensorflow:Evaluation [375/1000]\n",
      "INFO:tensorflow:Evaluation [376/1000]\n",
      "INFO:tensorflow:Evaluation [377/1000]\n",
      "INFO:tensorflow:Evaluation [378/1000]\n",
      "INFO:tensorflow:Evaluation [379/1000]\n",
      "INFO:tensorflow:Evaluation [380/1000]\n",
      "INFO:tensorflow:Evaluation [381/1000]\n",
      "INFO:tensorflow:Evaluation [382/1000]\n",
      "INFO:tensorflow:Evaluation [383/1000]\n",
      "INFO:tensorflow:Evaluation [384/1000]\n",
      "INFO:tensorflow:Evaluation [385/1000]\n",
      "INFO:tensorflow:Evaluation [386/1000]\n",
      "INFO:tensorflow:Evaluation [387/1000]\n",
      "INFO:tensorflow:Evaluation [388/1000]\n",
      "INFO:tensorflow:Evaluation [389/1000]\n",
      "INFO:tensorflow:Evaluation [390/1000]\n",
      "INFO:tensorflow:Evaluation [391/1000]\n",
      "INFO:tensorflow:Evaluation [392/1000]\n",
      "INFO:tensorflow:Evaluation [393/1000]\n",
      "INFO:tensorflow:Evaluation [394/1000]\n",
      "INFO:tensorflow:Evaluation [395/1000]\n",
      "INFO:tensorflow:Evaluation [396/1000]\n",
      "INFO:tensorflow:Evaluation [397/1000]\n",
      "INFO:tensorflow:Evaluation [398/1000]\n",
      "INFO:tensorflow:Evaluation [399/1000]\n",
      "INFO:tensorflow:Evaluation [400/1000]\n",
      "INFO:tensorflow:Evaluation [401/1000]\n",
      "INFO:tensorflow:Evaluation [402/1000]\n",
      "INFO:tensorflow:Evaluation [403/1000]\n",
      "INFO:tensorflow:Evaluation [404/1000]\n",
      "INFO:tensorflow:Evaluation [405/1000]\n",
      "INFO:tensorflow:Evaluation [406/1000]\n",
      "INFO:tensorflow:Evaluation [407/1000]\n",
      "INFO:tensorflow:Evaluation [408/1000]\n",
      "INFO:tensorflow:Evaluation [409/1000]\n",
      "INFO:tensorflow:Evaluation [410/1000]\n",
      "INFO:tensorflow:Evaluation [411/1000]\n",
      "INFO:tensorflow:Evaluation [412/1000]\n",
      "INFO:tensorflow:Evaluation [413/1000]\n",
      "INFO:tensorflow:Evaluation [414/1000]\n",
      "INFO:tensorflow:Evaluation [415/1000]\n",
      "INFO:tensorflow:Evaluation [416/1000]\n",
      "INFO:tensorflow:Evaluation [417/1000]\n",
      "INFO:tensorflow:Evaluation [418/1000]\n",
      "INFO:tensorflow:Evaluation [419/1000]\n",
      "INFO:tensorflow:Evaluation [420/1000]\n",
      "INFO:tensorflow:Evaluation [421/1000]\n",
      "INFO:tensorflow:Evaluation [422/1000]\n",
      "INFO:tensorflow:Evaluation [423/1000]\n",
      "INFO:tensorflow:Evaluation [424/1000]\n",
      "INFO:tensorflow:Evaluation [425/1000]\n",
      "INFO:tensorflow:Evaluation [426/1000]\n",
      "INFO:tensorflow:Evaluation [427/1000]\n",
      "INFO:tensorflow:Evaluation [428/1000]\n",
      "INFO:tensorflow:Evaluation [429/1000]\n",
      "INFO:tensorflow:Evaluation [430/1000]\n",
      "INFO:tensorflow:Evaluation [431/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [432/1000]\n",
      "INFO:tensorflow:Evaluation [433/1000]\n",
      "INFO:tensorflow:Evaluation [434/1000]\n",
      "INFO:tensorflow:Evaluation [435/1000]\n",
      "INFO:tensorflow:Evaluation [436/1000]\n",
      "INFO:tensorflow:Evaluation [437/1000]\n",
      "INFO:tensorflow:Evaluation [438/1000]\n",
      "INFO:tensorflow:Evaluation [439/1000]\n",
      "INFO:tensorflow:Evaluation [440/1000]\n",
      "INFO:tensorflow:Evaluation [441/1000]\n",
      "INFO:tensorflow:Evaluation [442/1000]\n",
      "INFO:tensorflow:Evaluation [443/1000]\n",
      "INFO:tensorflow:Evaluation [444/1000]\n",
      "INFO:tensorflow:Evaluation [445/1000]\n",
      "INFO:tensorflow:Evaluation [446/1000]\n",
      "INFO:tensorflow:Evaluation [447/1000]\n",
      "INFO:tensorflow:Evaluation [448/1000]\n",
      "INFO:tensorflow:Evaluation [449/1000]\n",
      "INFO:tensorflow:Evaluation [450/1000]\n",
      "INFO:tensorflow:Evaluation [451/1000]\n",
      "INFO:tensorflow:Evaluation [452/1000]\n",
      "INFO:tensorflow:Evaluation [453/1000]\n",
      "INFO:tensorflow:Evaluation [454/1000]\n",
      "INFO:tensorflow:Evaluation [455/1000]\n",
      "INFO:tensorflow:Evaluation [456/1000]\n",
      "INFO:tensorflow:Evaluation [457/1000]\n",
      "INFO:tensorflow:Evaluation [458/1000]\n",
      "INFO:tensorflow:Evaluation [459/1000]\n",
      "INFO:tensorflow:Evaluation [460/1000]\n",
      "INFO:tensorflow:Evaluation [461/1000]\n",
      "INFO:tensorflow:Evaluation [462/1000]\n",
      "INFO:tensorflow:Evaluation [463/1000]\n",
      "INFO:tensorflow:Evaluation [464/1000]\n",
      "INFO:tensorflow:Evaluation [465/1000]\n",
      "INFO:tensorflow:Evaluation [466/1000]\n",
      "INFO:tensorflow:Evaluation [467/1000]\n",
      "INFO:tensorflow:Evaluation [468/1000]\n",
      "INFO:tensorflow:Evaluation [469/1000]\n",
      "INFO:tensorflow:Evaluation [470/1000]\n",
      "INFO:tensorflow:Evaluation [471/1000]\n",
      "INFO:tensorflow:Evaluation [472/1000]\n",
      "INFO:tensorflow:Evaluation [473/1000]\n",
      "INFO:tensorflow:Evaluation [474/1000]\n",
      "INFO:tensorflow:Evaluation [475/1000]\n",
      "INFO:tensorflow:Evaluation [476/1000]\n",
      "INFO:tensorflow:Evaluation [477/1000]\n",
      "INFO:tensorflow:Evaluation [478/1000]\n",
      "INFO:tensorflow:Evaluation [479/1000]\n",
      "INFO:tensorflow:Evaluation [480/1000]\n",
      "INFO:tensorflow:Evaluation [481/1000]\n",
      "INFO:tensorflow:Evaluation [482/1000]\n",
      "INFO:tensorflow:Evaluation [483/1000]\n",
      "INFO:tensorflow:Evaluation [484/1000]\n",
      "INFO:tensorflow:Evaluation [485/1000]\n",
      "INFO:tensorflow:Evaluation [486/1000]\n",
      "INFO:tensorflow:Evaluation [487/1000]\n",
      "INFO:tensorflow:Evaluation [488/1000]\n",
      "INFO:tensorflow:Evaluation [489/1000]\n",
      "INFO:tensorflow:Evaluation [490/1000]\n",
      "INFO:tensorflow:Evaluation [491/1000]\n",
      "INFO:tensorflow:Evaluation [492/1000]\n",
      "INFO:tensorflow:Evaluation [493/1000]\n",
      "INFO:tensorflow:Evaluation [494/1000]\n",
      "INFO:tensorflow:Evaluation [495/1000]\n",
      "INFO:tensorflow:Evaluation [496/1000]\n",
      "INFO:tensorflow:Evaluation [497/1000]\n",
      "INFO:tensorflow:Evaluation [498/1000]\n",
      "INFO:tensorflow:Evaluation [499/1000]\n",
      "INFO:tensorflow:Evaluation [500/1000]\n",
      "INFO:tensorflow:Evaluation [501/1000]\n",
      "INFO:tensorflow:Evaluation [502/1000]\n",
      "INFO:tensorflow:Evaluation [503/1000]\n",
      "INFO:tensorflow:Evaluation [504/1000]\n",
      "INFO:tensorflow:Evaluation [505/1000]\n",
      "INFO:tensorflow:Evaluation [506/1000]\n",
      "INFO:tensorflow:Evaluation [507/1000]\n",
      "INFO:tensorflow:Evaluation [508/1000]\n",
      "INFO:tensorflow:Evaluation [509/1000]\n",
      "INFO:tensorflow:Evaluation [510/1000]\n",
      "INFO:tensorflow:Evaluation [511/1000]\n",
      "INFO:tensorflow:Evaluation [512/1000]\n",
      "INFO:tensorflow:Evaluation [513/1000]\n",
      "INFO:tensorflow:Evaluation [514/1000]\n",
      "INFO:tensorflow:Evaluation [515/1000]\n",
      "INFO:tensorflow:Evaluation [516/1000]\n",
      "INFO:tensorflow:Evaluation [517/1000]\n",
      "INFO:tensorflow:Evaluation [518/1000]\n",
      "INFO:tensorflow:Evaluation [519/1000]\n",
      "INFO:tensorflow:Evaluation [520/1000]\n",
      "INFO:tensorflow:Evaluation [521/1000]\n",
      "INFO:tensorflow:Evaluation [522/1000]\n",
      "INFO:tensorflow:Evaluation [523/1000]\n",
      "INFO:tensorflow:Evaluation [524/1000]\n",
      "INFO:tensorflow:Evaluation [525/1000]\n",
      "INFO:tensorflow:Evaluation [526/1000]\n",
      "INFO:tensorflow:Evaluation [527/1000]\n",
      "INFO:tensorflow:Evaluation [528/1000]\n",
      "INFO:tensorflow:Evaluation [529/1000]\n",
      "INFO:tensorflow:Evaluation [530/1000]\n",
      "INFO:tensorflow:Evaluation [531/1000]\n",
      "INFO:tensorflow:Evaluation [532/1000]\n",
      "INFO:tensorflow:Evaluation [533/1000]\n",
      "INFO:tensorflow:Evaluation [534/1000]\n",
      "INFO:tensorflow:Evaluation [535/1000]\n",
      "INFO:tensorflow:Evaluation [536/1000]\n",
      "INFO:tensorflow:Evaluation [537/1000]\n",
      "INFO:tensorflow:Evaluation [538/1000]\n",
      "INFO:tensorflow:Evaluation [539/1000]\n",
      "INFO:tensorflow:Evaluation [540/1000]\n",
      "INFO:tensorflow:Evaluation [541/1000]\n",
      "INFO:tensorflow:Evaluation [542/1000]\n",
      "INFO:tensorflow:Evaluation [543/1000]\n",
      "INFO:tensorflow:Evaluation [544/1000]\n",
      "INFO:tensorflow:Evaluation [545/1000]\n",
      "INFO:tensorflow:Evaluation [546/1000]\n",
      "INFO:tensorflow:Evaluation [547/1000]\n",
      "INFO:tensorflow:Evaluation [548/1000]\n",
      "INFO:tensorflow:Evaluation [549/1000]\n",
      "INFO:tensorflow:Evaluation [550/1000]\n",
      "INFO:tensorflow:Evaluation [551/1000]\n",
      "INFO:tensorflow:Evaluation [552/1000]\n",
      "INFO:tensorflow:Evaluation [553/1000]\n",
      "INFO:tensorflow:Evaluation [554/1000]\n",
      "INFO:tensorflow:Evaluation [555/1000]\n",
      "INFO:tensorflow:Evaluation [556/1000]\n",
      "INFO:tensorflow:Evaluation [557/1000]\n",
      "INFO:tensorflow:Evaluation [558/1000]\n",
      "INFO:tensorflow:Evaluation [559/1000]\n",
      "INFO:tensorflow:Evaluation [560/1000]\n",
      "INFO:tensorflow:Evaluation [561/1000]\n",
      "INFO:tensorflow:Evaluation [562/1000]\n",
      "INFO:tensorflow:Evaluation [563/1000]\n",
      "INFO:tensorflow:Evaluation [564/1000]\n",
      "INFO:tensorflow:Evaluation [565/1000]\n",
      "INFO:tensorflow:Evaluation [566/1000]\n",
      "INFO:tensorflow:Evaluation [567/1000]\n",
      "INFO:tensorflow:Evaluation [568/1000]\n",
      "INFO:tensorflow:Evaluation [569/1000]\n",
      "INFO:tensorflow:Evaluation [570/1000]\n",
      "INFO:tensorflow:Evaluation [571/1000]\n",
      "INFO:tensorflow:Evaluation [572/1000]\n",
      "INFO:tensorflow:Evaluation [573/1000]\n",
      "INFO:tensorflow:Evaluation [574/1000]\n",
      "INFO:tensorflow:Evaluation [575/1000]\n",
      "INFO:tensorflow:Evaluation [576/1000]\n",
      "INFO:tensorflow:Evaluation [577/1000]\n",
      "INFO:tensorflow:Evaluation [578/1000]\n",
      "INFO:tensorflow:Evaluation [579/1000]\n",
      "INFO:tensorflow:Evaluation [580/1000]\n",
      "INFO:tensorflow:Evaluation [581/1000]\n",
      "INFO:tensorflow:Evaluation [582/1000]\n",
      "INFO:tensorflow:Evaluation [583/1000]\n",
      "INFO:tensorflow:Evaluation [584/1000]\n",
      "INFO:tensorflow:Evaluation [585/1000]\n",
      "INFO:tensorflow:Evaluation [586/1000]\n",
      "INFO:tensorflow:Evaluation [587/1000]\n",
      "INFO:tensorflow:Evaluation [588/1000]\n",
      "INFO:tensorflow:Evaluation [589/1000]\n",
      "INFO:tensorflow:Evaluation [590/1000]\n",
      "INFO:tensorflow:Evaluation [591/1000]\n",
      "INFO:tensorflow:Evaluation [592/1000]\n",
      "INFO:tensorflow:Evaluation [593/1000]\n",
      "INFO:tensorflow:Evaluation [594/1000]\n",
      "INFO:tensorflow:Evaluation [595/1000]\n",
      "INFO:tensorflow:Evaluation [596/1000]\n",
      "INFO:tensorflow:Evaluation [597/1000]\n",
      "INFO:tensorflow:Evaluation [598/1000]\n",
      "INFO:tensorflow:Evaluation [599/1000]\n",
      "INFO:tensorflow:Evaluation [600/1000]\n",
      "INFO:tensorflow:Evaluation [601/1000]\n",
      "INFO:tensorflow:Evaluation [602/1000]\n",
      "INFO:tensorflow:Evaluation [603/1000]\n",
      "INFO:tensorflow:Evaluation [604/1000]\n",
      "INFO:tensorflow:Evaluation [605/1000]\n",
      "INFO:tensorflow:Evaluation [606/1000]\n",
      "INFO:tensorflow:Evaluation [607/1000]\n",
      "INFO:tensorflow:Evaluation [608/1000]\n",
      "INFO:tensorflow:Evaluation [609/1000]\n",
      "INFO:tensorflow:Evaluation [610/1000]\n",
      "INFO:tensorflow:Evaluation [611/1000]\n",
      "INFO:tensorflow:Evaluation [612/1000]\n",
      "INFO:tensorflow:Evaluation [613/1000]\n",
      "INFO:tensorflow:Evaluation [614/1000]\n",
      "INFO:tensorflow:Evaluation [615/1000]\n",
      "INFO:tensorflow:Evaluation [616/1000]\n",
      "INFO:tensorflow:Evaluation [617/1000]\n",
      "INFO:tensorflow:Evaluation [618/1000]\n",
      "INFO:tensorflow:Evaluation [619/1000]\n",
      "INFO:tensorflow:Evaluation [620/1000]\n",
      "INFO:tensorflow:Evaluation [621/1000]\n",
      "INFO:tensorflow:Evaluation [622/1000]\n",
      "INFO:tensorflow:Evaluation [623/1000]\n",
      "INFO:tensorflow:Evaluation [624/1000]\n",
      "INFO:tensorflow:Evaluation [625/1000]\n",
      "INFO:tensorflow:Evaluation [626/1000]\n",
      "INFO:tensorflow:Evaluation [627/1000]\n",
      "INFO:tensorflow:Evaluation [628/1000]\n",
      "INFO:tensorflow:Evaluation [629/1000]\n",
      "INFO:tensorflow:Evaluation [630/1000]\n",
      "INFO:tensorflow:Evaluation [631/1000]\n",
      "INFO:tensorflow:Evaluation [632/1000]\n",
      "INFO:tensorflow:Evaluation [633/1000]\n",
      "INFO:tensorflow:Evaluation [634/1000]\n",
      "INFO:tensorflow:Evaluation [635/1000]\n",
      "INFO:tensorflow:Evaluation [636/1000]\n",
      "INFO:tensorflow:Evaluation [637/1000]\n",
      "INFO:tensorflow:Evaluation [638/1000]\n",
      "INFO:tensorflow:Evaluation [639/1000]\n",
      "INFO:tensorflow:Evaluation [640/1000]\n",
      "INFO:tensorflow:Evaluation [641/1000]\n",
      "INFO:tensorflow:Evaluation [642/1000]\n",
      "INFO:tensorflow:Evaluation [643/1000]\n",
      "INFO:tensorflow:Evaluation [644/1000]\n",
      "INFO:tensorflow:Evaluation [645/1000]\n",
      "INFO:tensorflow:Evaluation [646/1000]\n",
      "INFO:tensorflow:Evaluation [647/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [648/1000]\n",
      "INFO:tensorflow:Evaluation [649/1000]\n",
      "INFO:tensorflow:Evaluation [650/1000]\n",
      "INFO:tensorflow:Evaluation [651/1000]\n",
      "INFO:tensorflow:Evaluation [652/1000]\n",
      "INFO:tensorflow:Evaluation [653/1000]\n",
      "INFO:tensorflow:Evaluation [654/1000]\n",
      "INFO:tensorflow:Evaluation [655/1000]\n",
      "INFO:tensorflow:Evaluation [656/1000]\n",
      "INFO:tensorflow:Evaluation [657/1000]\n",
      "INFO:tensorflow:Evaluation [658/1000]\n",
      "INFO:tensorflow:Evaluation [659/1000]\n",
      "INFO:tensorflow:Evaluation [660/1000]\n",
      "INFO:tensorflow:Evaluation [661/1000]\n",
      "INFO:tensorflow:Evaluation [662/1000]\n",
      "INFO:tensorflow:Evaluation [663/1000]\n",
      "INFO:tensorflow:Evaluation [664/1000]\n",
      "INFO:tensorflow:Evaluation [665/1000]\n",
      "INFO:tensorflow:Evaluation [666/1000]\n",
      "INFO:tensorflow:Evaluation [667/1000]\n",
      "INFO:tensorflow:Evaluation [668/1000]\n",
      "INFO:tensorflow:Evaluation [669/1000]\n",
      "INFO:tensorflow:Evaluation [670/1000]\n",
      "INFO:tensorflow:Evaluation [671/1000]\n",
      "INFO:tensorflow:Evaluation [672/1000]\n",
      "INFO:tensorflow:Evaluation [673/1000]\n",
      "INFO:tensorflow:Evaluation [674/1000]\n",
      "INFO:tensorflow:Evaluation [675/1000]\n",
      "INFO:tensorflow:Evaluation [676/1000]\n",
      "INFO:tensorflow:Evaluation [677/1000]\n",
      "INFO:tensorflow:Evaluation [678/1000]\n",
      "INFO:tensorflow:Evaluation [679/1000]\n",
      "INFO:tensorflow:Evaluation [680/1000]\n",
      "INFO:tensorflow:Evaluation [681/1000]\n",
      "INFO:tensorflow:Evaluation [682/1000]\n",
      "INFO:tensorflow:Evaluation [683/1000]\n",
      "INFO:tensorflow:Evaluation [684/1000]\n",
      "INFO:tensorflow:Evaluation [685/1000]\n",
      "INFO:tensorflow:Evaluation [686/1000]\n",
      "INFO:tensorflow:Evaluation [687/1000]\n",
      "INFO:tensorflow:Evaluation [688/1000]\n",
      "INFO:tensorflow:Evaluation [689/1000]\n",
      "INFO:tensorflow:Evaluation [690/1000]\n",
      "INFO:tensorflow:Evaluation [691/1000]\n",
      "INFO:tensorflow:Evaluation [692/1000]\n",
      "INFO:tensorflow:Evaluation [693/1000]\n",
      "INFO:tensorflow:Evaluation [694/1000]\n",
      "INFO:tensorflow:Evaluation [695/1000]\n",
      "INFO:tensorflow:Evaluation [696/1000]\n",
      "INFO:tensorflow:Evaluation [697/1000]\n",
      "INFO:tensorflow:Evaluation [698/1000]\n",
      "INFO:tensorflow:Evaluation [699/1000]\n",
      "INFO:tensorflow:Evaluation [700/1000]\n",
      "INFO:tensorflow:Evaluation [701/1000]\n",
      "INFO:tensorflow:Evaluation [702/1000]\n",
      "INFO:tensorflow:Evaluation [703/1000]\n",
      "INFO:tensorflow:Evaluation [704/1000]\n",
      "INFO:tensorflow:Evaluation [705/1000]\n",
      "INFO:tensorflow:Evaluation [706/1000]\n",
      "INFO:tensorflow:Evaluation [707/1000]\n",
      "INFO:tensorflow:Evaluation [708/1000]\n",
      "INFO:tensorflow:Evaluation [709/1000]\n",
      "INFO:tensorflow:Evaluation [710/1000]\n",
      "INFO:tensorflow:Evaluation [711/1000]\n",
      "INFO:tensorflow:Evaluation [712/1000]\n",
      "INFO:tensorflow:Evaluation [713/1000]\n",
      "INFO:tensorflow:Evaluation [714/1000]\n",
      "INFO:tensorflow:Evaluation [715/1000]\n",
      "INFO:tensorflow:Evaluation [716/1000]\n",
      "INFO:tensorflow:Evaluation [717/1000]\n",
      "INFO:tensorflow:Evaluation [718/1000]\n",
      "INFO:tensorflow:Evaluation [719/1000]\n",
      "INFO:tensorflow:Evaluation [720/1000]\n",
      "INFO:tensorflow:Evaluation [721/1000]\n",
      "INFO:tensorflow:Evaluation [722/1000]\n",
      "INFO:tensorflow:Evaluation [723/1000]\n",
      "INFO:tensorflow:Evaluation [724/1000]\n",
      "INFO:tensorflow:Evaluation [725/1000]\n",
      "INFO:tensorflow:Evaluation [726/1000]\n",
      "INFO:tensorflow:Evaluation [727/1000]\n",
      "INFO:tensorflow:Evaluation [728/1000]\n",
      "INFO:tensorflow:Evaluation [729/1000]\n",
      "INFO:tensorflow:Evaluation [730/1000]\n",
      "INFO:tensorflow:Evaluation [731/1000]\n",
      "INFO:tensorflow:Evaluation [732/1000]\n",
      "INFO:tensorflow:Evaluation [733/1000]\n",
      "INFO:tensorflow:Evaluation [734/1000]\n",
      "INFO:tensorflow:Evaluation [735/1000]\n",
      "INFO:tensorflow:Evaluation [736/1000]\n",
      "INFO:tensorflow:Evaluation [737/1000]\n",
      "INFO:tensorflow:Evaluation [738/1000]\n",
      "INFO:tensorflow:Evaluation [739/1000]\n",
      "INFO:tensorflow:Evaluation [740/1000]\n",
      "INFO:tensorflow:Evaluation [741/1000]\n",
      "INFO:tensorflow:Evaluation [742/1000]\n",
      "INFO:tensorflow:Evaluation [743/1000]\n",
      "INFO:tensorflow:Evaluation [744/1000]\n",
      "INFO:tensorflow:Evaluation [745/1000]\n",
      "INFO:tensorflow:Evaluation [746/1000]\n",
      "INFO:tensorflow:Evaluation [747/1000]\n",
      "INFO:tensorflow:Evaluation [748/1000]\n",
      "INFO:tensorflow:Evaluation [749/1000]\n",
      "INFO:tensorflow:Evaluation [750/1000]\n",
      "INFO:tensorflow:Evaluation [751/1000]\n",
      "INFO:tensorflow:Evaluation [752/1000]\n",
      "INFO:tensorflow:Evaluation [753/1000]\n",
      "INFO:tensorflow:Evaluation [754/1000]\n",
      "INFO:tensorflow:Evaluation [755/1000]\n",
      "INFO:tensorflow:Evaluation [756/1000]\n",
      "INFO:tensorflow:Evaluation [757/1000]\n",
      "INFO:tensorflow:Evaluation [758/1000]\n",
      "INFO:tensorflow:Evaluation [759/1000]\n",
      "INFO:tensorflow:Evaluation [760/1000]\n",
      "INFO:tensorflow:Evaluation [761/1000]\n",
      "INFO:tensorflow:Evaluation [762/1000]\n",
      "INFO:tensorflow:Evaluation [763/1000]\n",
      "INFO:tensorflow:Evaluation [764/1000]\n",
      "INFO:tensorflow:Evaluation [765/1000]\n",
      "INFO:tensorflow:Evaluation [766/1000]\n",
      "INFO:tensorflow:Evaluation [767/1000]\n",
      "INFO:tensorflow:Evaluation [768/1000]\n",
      "INFO:tensorflow:Evaluation [769/1000]\n",
      "INFO:tensorflow:Evaluation [770/1000]\n",
      "INFO:tensorflow:Evaluation [771/1000]\n",
      "INFO:tensorflow:Evaluation [772/1000]\n",
      "INFO:tensorflow:Evaluation [773/1000]\n",
      "INFO:tensorflow:Evaluation [774/1000]\n",
      "INFO:tensorflow:Evaluation [775/1000]\n",
      "INFO:tensorflow:Evaluation [776/1000]\n",
      "INFO:tensorflow:Evaluation [777/1000]\n",
      "INFO:tensorflow:Evaluation [778/1000]\n",
      "INFO:tensorflow:Evaluation [779/1000]\n",
      "INFO:tensorflow:Evaluation [780/1000]\n",
      "INFO:tensorflow:Evaluation [781/1000]\n",
      "INFO:tensorflow:Evaluation [782/1000]\n",
      "INFO:tensorflow:Evaluation [783/1000]\n",
      "INFO:tensorflow:Evaluation [784/1000]\n",
      "INFO:tensorflow:Evaluation [785/1000]\n",
      "INFO:tensorflow:Evaluation [786/1000]\n",
      "INFO:tensorflow:Evaluation [787/1000]\n",
      "INFO:tensorflow:Evaluation [788/1000]\n",
      "INFO:tensorflow:Evaluation [789/1000]\n",
      "INFO:tensorflow:Evaluation [790/1000]\n",
      "INFO:tensorflow:Evaluation [791/1000]\n",
      "INFO:tensorflow:Evaluation [792/1000]\n",
      "INFO:tensorflow:Evaluation [793/1000]\n",
      "INFO:tensorflow:Evaluation [794/1000]\n",
      "INFO:tensorflow:Evaluation [795/1000]\n",
      "INFO:tensorflow:Evaluation [796/1000]\n",
      "INFO:tensorflow:Evaluation [797/1000]\n",
      "INFO:tensorflow:Evaluation [798/1000]\n",
      "INFO:tensorflow:Evaluation [799/1000]\n",
      "INFO:tensorflow:Evaluation [800/1000]\n",
      "INFO:tensorflow:Evaluation [801/1000]\n",
      "INFO:tensorflow:Evaluation [802/1000]\n",
      "INFO:tensorflow:Evaluation [803/1000]\n",
      "INFO:tensorflow:Evaluation [804/1000]\n",
      "INFO:tensorflow:Evaluation [805/1000]\n",
      "INFO:tensorflow:Evaluation [806/1000]\n",
      "INFO:tensorflow:Evaluation [807/1000]\n",
      "INFO:tensorflow:Evaluation [808/1000]\n",
      "INFO:tensorflow:Evaluation [809/1000]\n",
      "INFO:tensorflow:Evaluation [810/1000]\n",
      "INFO:tensorflow:Evaluation [811/1000]\n",
      "INFO:tensorflow:Evaluation [812/1000]\n",
      "INFO:tensorflow:Evaluation [813/1000]\n",
      "INFO:tensorflow:Evaluation [814/1000]\n",
      "INFO:tensorflow:Evaluation [815/1000]\n",
      "INFO:tensorflow:Evaluation [816/1000]\n",
      "INFO:tensorflow:Evaluation [817/1000]\n",
      "INFO:tensorflow:Evaluation [818/1000]\n",
      "INFO:tensorflow:Evaluation [819/1000]\n",
      "INFO:tensorflow:Evaluation [820/1000]\n",
      "INFO:tensorflow:Evaluation [821/1000]\n",
      "INFO:tensorflow:Evaluation [822/1000]\n",
      "INFO:tensorflow:Evaluation [823/1000]\n",
      "INFO:tensorflow:Evaluation [824/1000]\n",
      "INFO:tensorflow:Evaluation [825/1000]\n",
      "INFO:tensorflow:Evaluation [826/1000]\n",
      "INFO:tensorflow:Evaluation [827/1000]\n",
      "INFO:tensorflow:Evaluation [828/1000]\n",
      "INFO:tensorflow:Evaluation [829/1000]\n",
      "INFO:tensorflow:Evaluation [830/1000]\n",
      "INFO:tensorflow:Evaluation [831/1000]\n",
      "INFO:tensorflow:Evaluation [832/1000]\n",
      "INFO:tensorflow:Evaluation [833/1000]\n",
      "INFO:tensorflow:Evaluation [834/1000]\n",
      "INFO:tensorflow:Evaluation [835/1000]\n",
      "INFO:tensorflow:Evaluation [836/1000]\n",
      "INFO:tensorflow:Evaluation [837/1000]\n",
      "INFO:tensorflow:Evaluation [838/1000]\n",
      "INFO:tensorflow:Evaluation [839/1000]\n",
      "INFO:tensorflow:Evaluation [840/1000]\n",
      "INFO:tensorflow:Evaluation [841/1000]\n",
      "INFO:tensorflow:Evaluation [842/1000]\n",
      "INFO:tensorflow:Evaluation [843/1000]\n",
      "INFO:tensorflow:Evaluation [844/1000]\n",
      "INFO:tensorflow:Evaluation [845/1000]\n",
      "INFO:tensorflow:Evaluation [846/1000]\n",
      "INFO:tensorflow:Evaluation [847/1000]\n",
      "INFO:tensorflow:Evaluation [848/1000]\n",
      "INFO:tensorflow:Evaluation [849/1000]\n",
      "INFO:tensorflow:Evaluation [850/1000]\n",
      "INFO:tensorflow:Evaluation [851/1000]\n",
      "INFO:tensorflow:Evaluation [852/1000]\n",
      "INFO:tensorflow:Evaluation [853/1000]\n",
      "INFO:tensorflow:Evaluation [854/1000]\n",
      "INFO:tensorflow:Evaluation [855/1000]\n",
      "INFO:tensorflow:Evaluation [856/1000]\n",
      "INFO:tensorflow:Evaluation [857/1000]\n",
      "INFO:tensorflow:Evaluation [858/1000]\n",
      "INFO:tensorflow:Evaluation [859/1000]\n",
      "INFO:tensorflow:Evaluation [860/1000]\n",
      "INFO:tensorflow:Evaluation [861/1000]\n",
      "INFO:tensorflow:Evaluation [862/1000]\n",
      "INFO:tensorflow:Evaluation [863/1000]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Evaluation [864/1000]\n",
      "INFO:tensorflow:Evaluation [865/1000]\n",
      "INFO:tensorflow:Evaluation [866/1000]\n",
      "INFO:tensorflow:Evaluation [867/1000]\n",
      "INFO:tensorflow:Evaluation [868/1000]\n",
      "INFO:tensorflow:Evaluation [869/1000]\n",
      "INFO:tensorflow:Evaluation [870/1000]\n",
      "INFO:tensorflow:Evaluation [871/1000]\n",
      "INFO:tensorflow:Evaluation [872/1000]\n",
      "INFO:tensorflow:Evaluation [873/1000]\n",
      "INFO:tensorflow:Evaluation [874/1000]\n",
      "INFO:tensorflow:Evaluation [875/1000]\n",
      "INFO:tensorflow:Evaluation [876/1000]\n",
      "INFO:tensorflow:Evaluation [877/1000]\n",
      "INFO:tensorflow:Evaluation [878/1000]\n",
      "INFO:tensorflow:Evaluation [879/1000]\n",
      "INFO:tensorflow:Evaluation [880/1000]\n",
      "INFO:tensorflow:Evaluation [881/1000]\n",
      "INFO:tensorflow:Evaluation [882/1000]\n",
      "INFO:tensorflow:Evaluation [883/1000]\n",
      "INFO:tensorflow:Evaluation [884/1000]\n",
      "INFO:tensorflow:Evaluation [885/1000]\n",
      "INFO:tensorflow:Evaluation [886/1000]\n",
      "INFO:tensorflow:Evaluation [887/1000]\n",
      "INFO:tensorflow:Evaluation [888/1000]\n",
      "INFO:tensorflow:Evaluation [889/1000]\n",
      "INFO:tensorflow:Evaluation [890/1000]\n",
      "INFO:tensorflow:Evaluation [891/1000]\n",
      "INFO:tensorflow:Evaluation [892/1000]\n",
      "INFO:tensorflow:Evaluation [893/1000]\n",
      "INFO:tensorflow:Evaluation [894/1000]\n",
      "INFO:tensorflow:Evaluation [895/1000]\n",
      "INFO:tensorflow:Evaluation [896/1000]\n",
      "INFO:tensorflow:Evaluation [897/1000]\n",
      "INFO:tensorflow:Evaluation [898/1000]\n",
      "INFO:tensorflow:Evaluation [899/1000]\n",
      "INFO:tensorflow:Evaluation [900/1000]\n",
      "INFO:tensorflow:Evaluation [901/1000]\n",
      "INFO:tensorflow:Evaluation [902/1000]\n",
      "INFO:tensorflow:Evaluation [903/1000]\n",
      "INFO:tensorflow:Evaluation [904/1000]\n",
      "INFO:tensorflow:Evaluation [905/1000]\n",
      "INFO:tensorflow:Evaluation [906/1000]\n",
      "INFO:tensorflow:Evaluation [907/1000]\n",
      "INFO:tensorflow:Evaluation [908/1000]\n",
      "INFO:tensorflow:Evaluation [909/1000]\n",
      "INFO:tensorflow:Evaluation [910/1000]\n",
      "INFO:tensorflow:Evaluation [911/1000]\n",
      "INFO:tensorflow:Evaluation [912/1000]\n",
      "INFO:tensorflow:Evaluation [913/1000]\n",
      "INFO:tensorflow:Evaluation [914/1000]\n",
      "INFO:tensorflow:Evaluation [915/1000]\n",
      "INFO:tensorflow:Evaluation [916/1000]\n",
      "INFO:tensorflow:Evaluation [917/1000]\n",
      "INFO:tensorflow:Evaluation [918/1000]\n",
      "INFO:tensorflow:Evaluation [919/1000]\n",
      "INFO:tensorflow:Evaluation [920/1000]\n",
      "INFO:tensorflow:Evaluation [921/1000]\n",
      "INFO:tensorflow:Evaluation [922/1000]\n",
      "INFO:tensorflow:Evaluation [923/1000]\n",
      "INFO:tensorflow:Evaluation [924/1000]\n",
      "INFO:tensorflow:Evaluation [925/1000]\n",
      "INFO:tensorflow:Evaluation [926/1000]\n",
      "INFO:tensorflow:Evaluation [927/1000]\n",
      "INFO:tensorflow:Evaluation [928/1000]\n",
      "INFO:tensorflow:Evaluation [929/1000]\n",
      "INFO:tensorflow:Evaluation [930/1000]\n",
      "INFO:tensorflow:Evaluation [931/1000]\n",
      "INFO:tensorflow:Evaluation [932/1000]\n",
      "INFO:tensorflow:Evaluation [933/1000]\n",
      "INFO:tensorflow:Evaluation [934/1000]\n",
      "INFO:tensorflow:Evaluation [935/1000]\n",
      "INFO:tensorflow:Evaluation [936/1000]\n",
      "INFO:tensorflow:Evaluation [937/1000]\n",
      "INFO:tensorflow:Evaluation [938/1000]\n",
      "INFO:tensorflow:Evaluation [939/1000]\n",
      "INFO:tensorflow:Evaluation [940/1000]\n",
      "INFO:tensorflow:Evaluation [941/1000]\n",
      "INFO:tensorflow:Evaluation [942/1000]\n",
      "INFO:tensorflow:Evaluation [943/1000]\n",
      "INFO:tensorflow:Evaluation [944/1000]\n",
      "INFO:tensorflow:Evaluation [945/1000]\n",
      "INFO:tensorflow:Evaluation [946/1000]\n",
      "INFO:tensorflow:Evaluation [947/1000]\n",
      "INFO:tensorflow:Evaluation [948/1000]\n",
      "INFO:tensorflow:Evaluation [949/1000]\n",
      "INFO:tensorflow:Evaluation [950/1000]\n",
      "INFO:tensorflow:Evaluation [951/1000]\n",
      "INFO:tensorflow:Evaluation [952/1000]\n",
      "INFO:tensorflow:Evaluation [953/1000]\n",
      "INFO:tensorflow:Evaluation [954/1000]\n",
      "INFO:tensorflow:Evaluation [955/1000]\n",
      "INFO:tensorflow:Evaluation [956/1000]\n",
      "INFO:tensorflow:Evaluation [957/1000]\n",
      "INFO:tensorflow:Evaluation [958/1000]\n",
      "INFO:tensorflow:Evaluation [959/1000]\n",
      "INFO:tensorflow:Evaluation [960/1000]\n",
      "INFO:tensorflow:Evaluation [961/1000]\n",
      "INFO:tensorflow:Evaluation [962/1000]\n",
      "INFO:tensorflow:Evaluation [963/1000]\n",
      "INFO:tensorflow:Evaluation [964/1000]\n",
      "INFO:tensorflow:Evaluation [965/1000]\n",
      "INFO:tensorflow:Evaluation [966/1000]\n",
      "INFO:tensorflow:Evaluation [967/1000]\n",
      "INFO:tensorflow:Evaluation [968/1000]\n",
      "INFO:tensorflow:Evaluation [969/1000]\n",
      "INFO:tensorflow:Evaluation [970/1000]\n",
      "INFO:tensorflow:Evaluation [971/1000]\n",
      "INFO:tensorflow:Evaluation [972/1000]\n",
      "INFO:tensorflow:Evaluation [973/1000]\n",
      "INFO:tensorflow:Evaluation [974/1000]\n",
      "INFO:tensorflow:Evaluation [975/1000]\n",
      "INFO:tensorflow:Evaluation [976/1000]\n",
      "INFO:tensorflow:Evaluation [977/1000]\n",
      "INFO:tensorflow:Evaluation [978/1000]\n",
      "INFO:tensorflow:Evaluation [979/1000]\n",
      "INFO:tensorflow:Evaluation [980/1000]\n",
      "INFO:tensorflow:Evaluation [981/1000]\n",
      "INFO:tensorflow:Evaluation [982/1000]\n",
      "INFO:tensorflow:Evaluation [983/1000]\n",
      "INFO:tensorflow:Evaluation [984/1000]\n",
      "INFO:tensorflow:Evaluation [985/1000]\n",
      "INFO:tensorflow:Evaluation [986/1000]\n",
      "INFO:tensorflow:Evaluation [987/1000]\n",
      "INFO:tensorflow:Evaluation [988/1000]\n",
      "INFO:tensorflow:Evaluation [989/1000]\n",
      "INFO:tensorflow:Evaluation [990/1000]\n",
      "INFO:tensorflow:Evaluation [991/1000]\n",
      "INFO:tensorflow:Evaluation [992/1000]\n",
      "INFO:tensorflow:Evaluation [993/1000]\n",
      "INFO:tensorflow:Evaluation [994/1000]\n",
      "INFO:tensorflow:Evaluation [995/1000]\n",
      "INFO:tensorflow:Evaluation [996/1000]\n",
      "INFO:tensorflow:Evaluation [997/1000]\n",
      "INFO:tensorflow:Evaluation [998/1000]\n",
      "INFO:tensorflow:Evaluation [999/1000]\n",
      "INFO:tensorflow:Evaluation [1000/1000]\n",
      "INFO:tensorflow:Finished evaluation at 2017-08-29-07:35:52\n",
      "INFO:tensorflow:Saving dict for global step 1000: average_loss = 1.19084, global_step = 1000, loss = 4.76336\n"
     ]
    }
   ],
   "source": [
    "eval_metrics = estimator.evaluate(input_fn=eval_input_func,steps=1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train metrics: {'loss': 4.673841, 'average_loss': 1.1684602, 'global_step': 1000}\n",
      "eval metrics: {'loss': 4.7633586, 'average_loss': 1.1908396, 'global_step': 1000}\n"
     ]
    }
   ],
   "source": [
    "print(\"train metrics: {}\".format(train_metrics))\n",
    "print(\"eval metrics: {}\".format(eval_metrics))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "input_fn_predict = tf.estimator.inputs.numpy_input_fn({'x':np.linspace(0,10,10)},shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt-1000\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[{'predictions': array([ 4.26618719], dtype=float32)},\n",
       " {'predictions': array([ 4.91423559], dtype=float32)},\n",
       " {'predictions': array([ 5.56228399], dtype=float32)},\n",
       " {'predictions': array([ 6.21033192], dtype=float32)},\n",
       " {'predictions': array([ 6.85838032], dtype=float32)},\n",
       " {'predictions': array([ 7.50642872], dtype=float32)},\n",
       " {'predictions': array([ 8.15447712], dtype=float32)},\n",
       " {'predictions': array([ 8.80252552], dtype=float32)},\n",
       " {'predictions': array([ 9.45057392], dtype=float32)},\n",
       " {'predictions': array([ 10.09862137], dtype=float32)}]"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(estimator.predict(input_fn=input_fn_predict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from C:\\Users\\Marcial\\AppData\\Local\\Temp\\tmphej5e4se\\model.ckpt-1000\n"
     ]
    }
   ],
   "source": [
    "predictions = []# np.array([])\n",
    "for x in estimator.predict(input_fn=input_fn_predict):\n",
    "    predictions.append(x['predictions'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([ 4.26618719], dtype=float32),\n",
       " array([ 4.91423559], dtype=float32),\n",
       " array([ 5.56228399], dtype=float32),\n",
       " array([ 6.21033192], dtype=float32),\n",
       " array([ 6.85838032], dtype=float32),\n",
       " array([ 7.50642872], dtype=float32),\n",
       " array([ 8.15447712], dtype=float32),\n",
       " array([ 8.80252552], dtype=float32),\n",
       " array([ 9.45057392], dtype=float32),\n",
       " array([ 10.09862137], dtype=float32)]"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x17e696c4438>]"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x17e6994df98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "my_data.sample(n=250).plot(kind='scatter',x='X Data',y='Y')\n",
    "plt.plot(np.linspace(0,10,10),predictions,'r')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Great Job!"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python (spinningup)",
   "language": "python",
   "name": "spinningup"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
